2013-09-12 4 views
0

У меня есть задание, чтобы сделать, но у меня возникают проблемы понимания данного psuedocode:/PHP массив во время эхо

<?php 
$bucket = new array(); 
print $bucket->addrocks('Rock1')->addrocks('rock2')- 
>addrocks('Rock3'); 

echo "<h1>My Bucket</h1>"; 
echo "<ul>"; 
foreach($bucket as $rock){ 
echo "<li>". $rock ."</li>"; 
} 
echo "</ul>"; 
?> 

Теперь моя беда начинается с понимания того, как они хотят, чтобы построить массив после «печати» вызова ? я не ищу прямой ответ на это только возможно учебник ссылки или палец в нужном направлении

Спасибо заранее

+1

человек, что вы делаете, правильно, проблема в том, что ваш массив пуст, а синтаксис неверен, удалить новый –

+1

'new array()' это ошибка? –

+0

выглядит как '$ bucket [] = 'Rock1'; $ Bucket [] = 'ROCK2'; $ bucket [] = 'Rock3'; 'мне. –

ответ

3

В PHP new используются только для инстанцирования objects Кроме того, array является reserved word в PHP, так что назовите ваш класс чем-то другим. Чтобы создать экземпляр массива в PHP вы это делаете:

$my_array = array(); 

Теперь для добавления элементов в массив вы могли бы сделать это:

$my_array[] = "Rock 1"; 
$my_array[] = "Rock 2"; 
$my_array[] = "Rock 3"; 

Для перемещения массива можно использовать любой тип цикла, но, как правило вы просто используете цикл foreach.

Например:

foreach($my_array as $key => $value) { 
    echo $value . "<br />"; 
} 
+0

Вы также не использовали ключевое слово 'new'. – Starx

+0

@Starx при попытке этого, класс array {} это не рабочий массив, это специальное слово, это не может быть сделано –

+0

Вы остановились, чтобы подумать, может быть, он собирался пройти класс STD Array? –

1

Проблема заключается в построении массива. Это как один строит массив в PHP:

один на один:

$bucket = array(); 
$bucket[] = "Rock1"; 
$bucket[] = "Rock2"; 
$bucket[] = "Rock3"; 

Все сразу:

$bucket = array("Rock1","Rock2","Rock3"); 

Документация: http://php.net/manual/en/language.types.array.php

1

Ну вряд ли но может быть array не является конструкцией, а классом i n ваш псевдокод. Мои предположения зависят от использования ключевого слова new и пользователя -> и addrocks, который выглядит как метод.

Итак, создайте класс array(глупый я знаю) и пойдем.

Однако пользователь foreach($bucket) также показывает, что он ожидает, что $ bucket будет массивом. Так разумно решить :)

Может быть использован магический метод, называемый __toString() внутри класса и возвращающий массив.

+0

может быть, у него есть toString, который возвращает массив? –

+0

@FaceOfJock, может быть .. – Starx

Смежные вопросы