今天在PHP中遇到一个奇怪的问题,我想知道是否有人可以解释它.在比较两个数组时,我最初尝试过这样的事情:
echo empty(array_diff( array('foo','bar') , array('bar','foo') ))
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误:
致命错误:无法在写上下文中使用函数返回值
将此重写为......
$dif = array_diff( array('foo','bar') , array('bar','foo') );
echo empty($dif);
Run Code Online (Sandbox Code Playgroud)
......工作得很好 空应该只是评估传递给它的值,而不是写入它,所以这里出了什么问题?在PHP 5.2.10和PHP 5.3.2中进行了测试.
我已经通过使用!count()代替而解决了这个问题empty(),但我很好奇为什么它首先不起作用.正在empty()试图改变从结果array_diff?