php - 为什么 end(( )) 不发出严格通知?

标签 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/

相关文章:

php - file_get_contents with http - 无法打开流

php - 如何使用 PHP 条码生成器将条码打印到我想要​​的 pdf 格式页面上?

c# - php与c#的tcp通信问题

PHP 将一个数组的索引分配给另一个数组

php - 如何获得列中的最高数字?

PHP 查询不显示回显值或错误

php - Magento 管理员登录页面中的 "Error 404 Not Found"

php - 非静态方法 PDO::quote() 不能静态调用,

javascript - 匹配以 : character, 开头但不以\开头的字符串:

php - 通过 PHP 发送电子邮件不起作用