>  기사  >  백엔드 개발  >  PHP数组键值的单双引号区别详解_PHP教程

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

WBOY
WBOY원래의
2016-07-13 10:48:11870검색

我们写遍历数组时会有几种方法如直接$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]

 代码如下 复制代码

define('constant','arr1');
$constant = 'arr2';
$variable = 'arr1';
$arr = array(
   'arr1'=>'arr1', 
   'arr2'=>'arr2', 
   'arr3'=>'arr3', 
);
 
echo $arr['arr1'],'
',$arr["$variable"],'
',$arr[constant],'
',$arr[$constant];
 
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632804.htmlTechArticle我们写遍历数组时会有几种方法如直接$arr[\'key\'] 与 $arr[\"key\"] 与 $arr[key]了我们都可以显示出要关内容,但是他们区别在哪里呢,下面我来...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.