[英]Why does accessing array index on boolean value does not raise any kind of error?
当我尝试通过该数组中不存在的键访问数组时,php将引发“未定义的索引”通知错误。 当我尝试对字符串执行相同操作时,会出现“非法字符串偏移”警告。 这是一种预期的行为,我知道如何处理它。
但是当我在布尔值或整数值上尝试这个时,没有任何反应:
ini_set('display_errors', 1);
error_reporting(E_ALL);
$var = false;
var_dump($var['test']);
我希望看到一些错误消息,但$var['test']
只是静默设置为NULL。
那么为什么php允许通过数组键访问布尔值而没有任何迹象表明你做错了什么? 洞“通过数组键访问布尔值”这句话对我来说听起来非常奇怪,但你可以在php中完成。
这很难过,但它是记录在案的行为。
http://php.net/manual/en/language.types.string.php
注意:
使用[]或{}以静默方式访问其他类型的变量(不包括实现适当接口的数组或对象)将返回NULL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.