美文网首页
PHP: empty的陷阱

PHP: empty的陷阱

作者: zhang_xinglong | 来源:发表于2017-03-28 17:00 被阅读0次

错误代码如下:

//empty()的参数值是函数
if (empty(trim($name))) {
    //[TODO]
}
//empty()的参数值是表达式
if (empty($var = trim($name))) {
    //[TODO]
}

报错信息如下:

Fatal error: Can't use function return value in write context in ...

引用PHP手册:

Note:
在PHP 5.5之前,empty() 仅支持变量;任何其他东西将会导致一个解析错误。
换言之,下列代码不会生效: empty(trim($name))。 
作为替代,应该使用trim($name) == false. 

PS:

在PHP 5.5之后,运行时不报错,但若提交至SVN仍会报错(GIT未试验)

正确代码如下:

//变量赋值法
$var = trim($name);
if (empty($var)) {
    //[TODO]
}
//作为替代法
if (trim($name) == false) {
    //[TODO]
}

相关文章

网友评论

      本文标题:PHP: empty的陷阱

      本文链接:https://www.haomeiwen.com/subject/eigjottx.html