数组的下标
<?php // 数组的下标应该怎么写???? // 把NOTICE级别的错误信息屏蔽掉 // 在开必项目前会专门讲错误报告设置 error_reporting(E_ALL & ~E_NOTICE); $arr = array(1=>'中',2=>'华','name'=>'张三','area'=>'衡水'); echo $arr[1],$arr['1'],$arr["1"],'<br />'; echo $arr['name'],$arr["name"],$arr[name],'<br />'; // 1: 对于数字的索引值,不必加单双引号 // 因为加了单双引号,比如"1",则需要把"1"转成整型1,来寻找该单元. // 影响了效率. // 第2个问题: 字符串型的下标,要不要加单双引号???? echo '没问题---',$arr[name],'<br />'; define('name','dsafdsafdsaf'); error_reporting(E_ALL); echo '有问题----',$arr[name],'<br />'; // 张三没打印出来!!! /* 不仅没打出来,而且出现如下提示: Notice: Undefined index: dsafdsafdsaf in D:\www\1009\10.php on line 29 这说明 $arr[name] -->引用的是 $arr[dsafdsafdsaf] 单元,没有这个单元,所以报NOTICE 为什么引用$arr[dsafdsafdsaf] 这个单元? 答:因为name没有加单双引号,理解成常量,并且按常量值来做下标. 如果没有该常量,再次把name当成字符串的下标来处理. 不加单双引号,流程上,先理解成常量,如无,再当成字符串,效率必然低. */ // 第3个问题,加单引还是加双引? /* 在字符串学习的时候,单引号的解析速度远比双引号快. 因此,优先加 单引号. */ /*** 总结: 数字类型的索引,不必加引号 字符串类型索引必加,而且优先加单引号 ***/ ?>