PHP数组键值双引号单引号区别

2019-02-12 1 编辑:小乐生活 来源:

一、$myarray['key'] 与 $myarray["key"] 与 $myarray[key]的差别:

以上三种方式主要是通过字符串类型数组下标即数组键访问数组的值,如果数组下标为索引类型即键值为数字则无需注意。

 

1,$myarray['key'] 单引号模式被直接解析为$myarray的值;

2,$myarray["key"]双引号模式会首先分析"key"字符串内部是否包含 PHP变量,然后再解析为$myarray的值;

3,$myarray[key]没有任何引号会先分析局部作用域内有没有key常量定义(即有无define('key','val')),

如果有则使用局部key常量代表的常量值作为数组键值;

否则继续分析全局作用域内有没有key常量定义,

如果有则使用全局key常量代表的常量值作为数组键值;

否则内部转换key为'key'字符串标量值并抛出E_NOTICE异常。

 

二、$myarray["$str_key"] 与 $myarray[$str_key]的差别

此方式亦为通过字符串类型数组下标访问数组的值,

如果数组下标为索引类型即数字则无需注意。

其实这里无需额外添加双引号以表示$str_key变量代表的是字符串值,

即$myarray["$str_key"] === $myarray[$str_key]

本站文章均为乐得网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,但谢绝直接搬砖和抄袭!感谢...