PHP表达式返回值和变量之间的差异

PHP表达式返回值和变量之间的差异,php,Php,如果传递函数的返回值(变量)而不是直接传递变量,为什么会有区别? 在报告中指出: 5.5.0:empty()现在支持表达式,而不仅仅是变量 但为什么这会有不同呢? 如果给定的表达式有一个变量作为返回值-在我看来-这两个语句将完全相同。在PHP 5.5之前,返回值是一个值,而不是一个变量,因为 return $value; 在被调用的函数中,$value仅在函数范围内有效;一旦函数终止执行,它就不再作为变量存在,因此调用代码只接收值猜我把值和变量弄混了。有点困惑。。。谢谢你@pudelhunde

如果传递函数的返回值(变量)而不是直接传递变量,为什么会有区别? 在报告中指出:

5.5.0:empty()现在支持表达式,而不仅仅是变量

但为什么这会有不同呢?
如果给定的表达式有一个变量作为返回值-在我看来-这两个语句将完全相同。

在PHP 5.5之前,返回值是一个值,而不是一个变量,因为

return $value;

在被调用的函数中,$value仅在函数范围内有效;一旦函数终止执行,它就不再作为变量存在,因此调用代码只接收值

猜我把值和变量弄混了。有点困惑。。。谢谢你@pudelhund
empty
是一种语言结构,而不是函数。区别在于它不按函数的规则运行(不需要接受来自其他函数的值作为输入等)。在PHP5.5之前,它直接处理变量,而不首先尝试从变量中获取值。这种行为现在已经改变,允许增加功能,但我只想澄清,
empty
不是一种特殊的函数或任何东西,它根本不是一个函数。这与
isset
echo
print
die
、以及
exit
哇,很高兴知道!是否有包含所有PHP语言结构的列表?是保留字的列表,其中大多数是语言结构(常量除外)