- 作者: Laruence( )
- 本文地址: http://www.laruence.com/2011/12/19/2409.html
- 转载请注明出处
在之前, 我曾经介绍过, 在PHP5.4中, PHP5.4中一个需要注意的变化(Chained string offsets) , 后续因为大多数人都表示这个变化很敏感, 容易成为坑.. 于是, 我们现在对此做了一些改进.
具体的改变是, 对于一个变量$a, 如果$a是一个字符串, 那么, 对于非数字型索引, 比如$a[“foo”], 在isset的时候将返回false, empty返回true, 但是为了兼容已有的代码, 当你获取这个值的时候, 还是会返回$a[0], 不过会额外抛出一个警告信息. 比如:
<?php $a = "laruence"; var_dump($a["foo"]) ; //PHP Warning: Illegal string offset 'foo' //output string(1) "l" var_dump(isset($a["foo"])); //false var_dump(empty($a["foo"])); //true
而对于键值是bool, double, null的情况, 将会和以前保持一致, 不过会抛出一个Notice信息.
<?php $a = "bar"; echo $a[TRUE]; //PHP Notice: String offset cast occured //output a
而对于数字型的字符串索引, 比如”1″, “12″等, 和以前保持一致.
不过, 还是要提醒下: PHP 5.4还处于开发阶段, 在最终release之前, 任何新特性都可能被调整或者更改. 如果大家有任何建议, 也欢迎反馈, 帮助我们使得PHP变得更好.
谢谢
更多更新信息, 请关注: Changelog
Comments
- 2011/12/19, 神仙 writes: 有个notice就好很多了。
- 2011/12/20, treesky writes: 这个非常实用,避免了悄无声息的发生问题!
- 2011/12/28, wclssdn writes: 看来以后只能每次都isset一次了- -..
Copyright © 2010 风雪之隅 版权所有, 转载务必注明. 该Feed只供个人使用, 禁止未注明的转载或商业应用. 非法应用的, 一切法律后果自负. 如有问题, 可发E-mail至my at laruence.com.(Digital Fingerprint: 73540ba0a1738d7d07d4b6038d5615e2)
Related Posts:
转载请注明:爱开源 » 之前提到的PHP5.4一个注意点的update