2013-08-04 3 views
0

Я видел, как люди пишут код, как это:Доступ массивы вместо

$image_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), array(300, 300), false, ''); 
$image_url = $image_url[0]; 

, который, кажется, немного смешно, потому что вы могли бы просто приложить [0] к концу первого срока. Поэтому я никогда не делал этого на своей локальной машине, но теперь, когда вы развертываете на удаленных машинах (возможно, с разными версиями php, я всегда получаю ошибки об неожиданных «[». Не допускает ли php доступ к массивам на месте или что-то изменилось ? в какой версии

+0

Я считаю, что это просто плохая практика. Семантика над «сохранением 14 символов» –

+0

Вы также можете сделать 'array_shift (...);' для получения нулевого индекса. Более простым примером может быть: '$ fileExt = array_pop (explode ('.', $ Filename));' ('array_pop()' просто является инверсией 'array_shift()'). –

+0

и [Получение элемента из массива PHP, возвращаемого функцией] (http://stackoverflow.com/q/8888591) – mario

ответ

4

Это допускается, так как PHP 5.4:.

массив Функция разыменование был добавлен, например, Foo() [0]

+0

Это вызвало ** слишком много головной боли для меня. Спасибо за ясность. – Xiv

1

Какая версия PHP вы используете ? Разбор разыменования функциональных массивов разрешен в PHP 5.4 (и abov е).

1

В PHP < 5.4 вы не можете взять элемент из массива до его существования ... Вы должны приехать из мира Python или Ruby, где разрешен этот вид синтаксиса.

Если у вас есть PHP < 5.4, вам нужно установить массив и получить индекс, который вы хотите.

+0

Javascript, и я уверен, что другие языки также позволяют разыменовывать массивы. –

+0

Python или Ruby ... или C или Java или JavaScript или почти любой другой язык. – Dave

+0

Я процитировал два первых языка, которые пришли мне на ум. Много (почти все?) Разрешили это сейчас. –