2013-07-23 3 views
0

Почему это имеет значение, если переданное значение функции (переменная) передано, а не переменная напрямую? В PHP documentation for the empty() function говорится, чтоРазница между значением возвращаемого выражения PHP и переменной

5.5.0: пусто() теперь поддерживает выражения, а не только переменные.

Но почему это все равно имеет значение? Если данное выражение имеет переменную как возвращаемое значение - в моих глазах - оба утверждения будут точно такими же.

ответ

2

До PHP 5.5, возвращаемое значение является значение, а не переменной, потому что, когда вы говорите

return $value; 

в вашей вызываемой функции, значение $ действует только в рамках этой функции; он перестает существовать как переменная, как только функция завершает свое выполнение, поэтому код вызова получает только значение

+0

Угадайте, что я перепутал значения и переменные. Какой-то запутанный ... Спасибо, хотя! – pudelhund

+1

@pudelhund 'empty' - это языковая конструкция, а не функция. Разница в том, что она не работает по правилам функции (не требуется принимать значения из других функций в качестве ввода и т. Д.). До PHP 5.5 он работал _directly на переменных_, не пытаясь сначала получить значение из них. Это поведение теперь изменилось, чтобы обеспечить дополнительную функциональность, но я просто хочу уточнить, что 'empty' - это не особый тип функции или что-то еще, это просто _not function_ вообще. То же самое с 'isset',' echo', 'print',' die' и 'exit' –

+0

Вау, это полезно знать! Есть ли список со всеми конструкциями языка PHP? – pudelhund

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