2013-03-07 2 views
1

Это всего лишь вопрос любопытства ... Мне интересно, является ли доступ к функции возвращенных массивов в этом методе действительным. В этом примере я использую массив pathinfo().Является ли это допустимым методом доступа к массиву PHP?

pathinfo($file)['dirname']; 

Или требуется установить pathinfo() для переменной сначала, а затем получить к ней доступ. (Классический метод):

$info = pathinfo($file); 
$info['dirname']; 

Я знаю, что классический метод справедлив, однако я просто любопытно, если первый метод действует слишком. Я тестировал его с последней версией WAMP, и он работал, однако Dreamweaver CS5 называет это синтаксической ошибкой.

+1

Они оба _valid_ (это означает, что они будут работать) в PHP 5.4. В PHP <5.4 действует только вторая. Тем не менее, ни один из них не является приемлемым, поскольку вы не используете кавычки вокруг своего ключа массива, как вы должны. PHP просто (к сожалению) достаточно мягкий, чтобы преобразовать это в строку для вас (если константа не существует) –

+0

Я забыл кавычки, я отредактировал для исправления. – Johnno13

ответ

1

PHP 5.4+ поддерживает pathinfo($file)['dirname'];

Это называется массив разыменовании

Ссылка: http://www.schlueters.de/blog/archives/138-Features-in-PHP-trunk-Array-dereferencing.html

Ссылка: http://php.net/manual/en/language.types.array.php

и менее чем 5,4

$info = pathinfo($file); 
$info['dirname']; 
+0

Извините, я отредактировал код –

+0

@ColinMorelli Я отредактировал его ответ и добавил кавычки, однако теоретически может быть, что там было 'define ('dirname', 5)' или подобное ранее в коде, и в этом случае кавычки не должны быть добавлен. –

+0

Спасибо за ваш ответ. Я надеялся, что это будет более ранняя версия, потому что мой производственный сервер - это 5.3.1. – Johnno13

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