PHP开发时,当你使用empty检查一个函数返回的结果时会报错:Fatal error: Can't use function return value in write context
例如:
<?php
echo empty(strlen('be-evil.org'));
到PHP手册里面查看,在empty函数描述的地方有以下文字:
Note: empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).
empty() 只检测变量,检测任何非变量的东西都将导致解析错误!
因此,我们不能拿empty来直接检测函数返回的值,上面例子的解决方案如下:
<?php
$length = strlen('be-evil.org');
echo empty($length);
ps:
没有警告会产生,哪怕变量并不存在。 这意味着 empty() 本质上与 !isset($var) || $var == false 等价。
更新日志
版本 | 说明 |
---|---|
5.5.0 | empty() 现在支持表达式了,而不仅仅是变量。 |
总结,原来是php5.5版本之前empty()只支持变量,现在函数、表达式都可以放进去了!
转自网络
2016年7月28日