Проблема с PHP Array - PullRequest
       14

Проблема с PHP Array

4 голосов
/ 18 марта 2009

Почему нельзя сделать что-то подобное в PHP:

(Array(0))[0];

Это просто ради аргумента, но кажется странным, что не позволяет доступ анонимным объектам Я должен был бы сделать что-то вроде следующего:

$array = Array(0);
$array[0];

Есть идеи, почему такое поведение PHP?

Ответы [ 4 ]

4 голосов
/ 18 марта 2009

Однажды я прочитал кое-что подробное об этом и сожалею, что не сделал закладки, потому что это было довольно проницательно. Тем не менее, это что-то вроде

"Поскольку массив не существует в памяти, пока текущий оператор (строка) не будет выполнен полностью (точка с запятой достигнута)"

Итак, в основном вы определяете только массив - он на самом деле не создан и не доступен для чтения / доступа до следующей строки.

Я надеюсь это довольно точно подводит итог тому, что я смутно помню, прочитав много месяцев назад.

3 голосов
/ 18 марта 2009

Эта языковая функция еще не была дополнена, но появится в PHP 6 .

1 голос
/ 18 марта 2009

Полагаю, короткий ответ: никто еще не закодировал его. Я использовал (и любил) этот синтаксис как в Python, так и в Javascript, но все же мы ждем PHP.

0 голосов
/ 18 марта 2009

Основная причина в том, что в отличие от некоторых языков, таких как Python и JavaScript, Array() (или фактически array()) - это не объект, а языковая конструкция, которая создает встроенный тип данных. Сами встроенные типы данных также не являются объектами, и конструкция array() не возвращает ссылку на «объект», а само фактическое значение, когда его можно назначить переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...