<分区>
end(array_keys(array(0)))
说 PHP 严格标准:只有变量应该通过引用传递
( http://3v4l.org/CNLVT )
end((array_keys(array(0))))
另一方面,它可以正常工作 ( http://3v4l.org/168fi )。为什么?
VLD 反编译器显示正在运行相同的操作码,唯一的区别在于 ext
列,但我找不到关于这意味着什么的文档。
标签 php
<分区>
end(array_keys(array(0)))
说 PHP 严格标准:只有变量应该通过引用传递
( http://3v4l.org/CNLVT )
end((array_keys(array(0))))
另一方面,它可以正常工作 ( http://3v4l.org/168fi )。为什么?
VLD 反编译器显示正在运行相同的操作码,唯一的区别在于 ext
列,但我找不到关于这意味着什么的文档。
最佳答案
可能发生的情况是 array_keys
通过引用传回结果。因此,PHP 会向您发出通知,告诉您您不应该这样做。
括在括号中实际上改变了引用并强制 PHP 首先计算里面的语句。因此,它删除了引用。那些看起来并不重要但实际上却很重要的奇怪事情之一。
更多关于这里的怪异 http://phpsadness.com/sad/51
关于php - 为什么 end(( )) 不发出严格通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23722123/