加入收藏 | 设为首页 | 会员中心 | 我要投稿 南昌站长网 (https://www.0791zz.cn/)- 终端安全、安全管理、数据治理、图像分析、大数据!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP数组键值的单双引号区别详解

发布时间:2022-07-24 11:38:34 所属栏目:PHP教程 来源:互联网
导读:我们写遍历数组时会有几种方法如直接$arr[key] 与 $arr[key] 与 $arr[key]了我们都可以显示出要关内容,但是他们区别在哪里呢,下面我来介绍一下. 一、$arr[key] 与 $arr[key] 与 $arr[key]的差别: 以上三种方式主要是通过字符串类型数组下标即数组键访问
  我们写遍历数组时会有几种方法如直接$arr['key'] 与 $arr["key"] 与 $arr[key]了我们都可以显示出要关内容,但是他们区别在哪里呢,下面我来介绍一下.
 
  一、$arr['key'] 与 $arr["key"] 与 $arr[key]的差别:
 
  以上三种方式主要是通过字符串类型数组下标即数组键访问数组的值,如果数组下标为索引类型即键值为数字则无需注意.
 
  1,$arr['key'] 单引号模式被直接解析为$arr的值;
 
  2,$arr["key"]双引号模式会首先分析"key"字符串内部是否包含 PHP变量,然后再解析为$arr的值;
 
  3,$arr[key]没有任何引号会先分析局部作用域内有没有key常量定义(即有无define('key','val')),
 
  如果有则使用局部key常量代表的常量值作为数组键值;否则继续分析全局作用域内有没有key常量定义,如果有则使用全局key常量代表的常量值作为数组键值;否则内部转换key为'key'字符串标量值并抛出E_NOTICE异常。
 
  二、$arr["$str_key"] 与 $arr[$str_key]的差别:
 
  此方式亦为通过字符串类型数组下标访问数组的值,如果数组下标为索引类型即数字则无需注意,其实这里无需额外添加双引号以表示$str_key变量代表的是字符串值,即$arr["$str_key"] === $arr[$str_key],代码如下:
 
  <?php  
  define('constant','arr1');
  $constant = 'arr2';
  $variable = 'arr1';
  $arr = array(
     'arr1'=>'arr1',   
     'arr2'=>'arr2',   
     'arr3'=>'arr3',   
  );
  echo $arr['arr1'],'<br/>',$arr["$variable"],'<br/>',$arr[constant],'<br/>',$arr[$constant];
  ?> 

(编辑:南昌站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读