今天在thinkph开发时,使用了empty检查一个函数返回的结果时会报错:Fatal error: Can\'t use function return value in write context
echo empty($this->_post(\'uname\')));
到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只能检测直接的变量,我用了函数所以报错.看来代码不能省
因此,我们不能拿empty来直接检测函数返回的值,上面例子的解决方案如下:
$uname= $this->_post(\'uname\');
echo empty($length);