php 数组键名 能是中文, 哪位高手用过,会不会出现后患.
程序员文章站
2024-02-19 09:56:22
...
php 数组键名 能是中文, 谁用过,会不会出现后患...
RT 中文键名会不会留下后患>
------解决方案--------------------
可以用,没有问题
------解决方案--------------------
php的数组键名会被php内部转换为一个hash key。理论上没有问题。但中文总是会引起很多奇怪的bug。比如gbk下的低字节5c问题。
还有不同字符集下,php内部识别的unicode会不一致。我猜想,但没有实践过:
假如你的a.php使用了gbk编码,代码中声明了一个$a['中文']='123'的中文key数组。
b.php引用了a.php。但b.php文件本身的编码是utf-8。然后在b.php中echo $a['中文']。
此时,两个文件中的'中文'俩字在php内部所转换的hash key可能是不一致的,那么会造成b.php中的$a['中文']取不到任何值。
所以最好不要用中文。
------解决方案--------------------
呵呵,有一种扰码工具恰恰就是利用了这一点,让你无法破解
------解决方案--------------------
试一下这几个字(限GBK):榎 梶 東
如果这几个字没问题就全部没问题了……
RT 中文键名会不会留下后患>
------解决方案--------------------
可以用,没有问题
------解决方案--------------------
php的数组键名会被php内部转换为一个hash key。理论上没有问题。但中文总是会引起很多奇怪的bug。比如gbk下的低字节5c问题。
还有不同字符集下,php内部识别的unicode会不一致。我猜想,但没有实践过:
假如你的a.php使用了gbk编码,代码中声明了一个$a['中文']='123'的中文key数组。
b.php引用了a.php。但b.php文件本身的编码是utf-8。然后在b.php中echo $a['中文']。
此时,两个文件中的'中文'俩字在php内部所转换的hash key可能是不一致的,那么会造成b.php中的$a['中文']取不到任何值。
所以最好不要用中文。
------解决方案--------------------
呵呵,有一种扰码工具恰恰就是利用了这一点,让你无法破解
------解决方案--------------------
试一下这几个字(限GBK):榎 梶 東
如果这几个字没问题就全部没问题了……
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论