脚本宝典收集整理的这篇文章主要介绍了PHP 5.2允许对象语法调用数组索引?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
在我们的应用程序中,有些实例我们使用对象语法错误地调用了数组的索引:
echo $array->index;
但是,5.2.6似乎原谅了这一点,并正确地将其视为$array [‘index’].
经过进一步测试,5.2.6具体做的是不同意5.3.3关于$array-> index是否为空();
<?PHP echo PHPversion() . '<br>'; $array = array( 'x' => 1,'y' => 2 ); if (!empty($array->x)) { echo "not empty"; } else { echo "empty"; } ?>
以下是两种不同的输出:
5.2.6-1+lenny16 not empty 5.3.3-7+squeeze15 empty
当然,现在有一些功能被破坏的爆发,因为我们在开发过程中从未提醒过这些错误.有没有办法我们可以配置PHP 5.3以允许这种不正确的语法,而我们需要更多的时间来找到它的所有不正确的实例?
我不认为这是配置问题,是吗?在版本之间,empty()的工作方式有所改变吗?
从PHP 5.0.0到5.2.11(以及早期的5.3.0到5.3.1),这个“未定义属性”被报告为非空,这有资格作为缺陷或错误.
5.2.12(2009年12月17日)的相关变化为(ref):
从技术上讲,这不是从PHP 5.2到5.3的向后不兼容的变化,因为它在两个分支中都是一个缺陷,并且在两个分支中都是固定的.如果您迁移,则很难发现,因为标准迁移指南不包括它们.相反,您需要完成软件的更改并查找票据的注释和参考.
所以回答你的问题:这是一个配置问题,因为使用的PHP版本算作配置.您更改了配置,然后遇到了问题.
同样如报告所示,这仅限于empty()和isset(),而不是一般对象/数组访问.你可以想象,如果情况确实如此,你会发现更多关于它的参考.
以上是脚本宝典为你收集整理的PHP 5.2允许对象语法调用数组索引?全部内容,希望文章能够帮你解决PHP 5.2允许对象语法调用数组索引?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。