$array[0]与$array['0']的区别
回复讨论(解决方案)
一般情况下不用单引号即可
因为都是数字 0,所以没有区别
编写程序还是通用规则写的好,这样代码规范,不容易出错,也方便其他人员阅读。
因为都是数字 0,所以没有区别
如果换成1 2 3 之类的呢??
编写程序还是通用规则写的好,这样代码规范,不容易出错,也方便其他人员阅读。
呐呐 就是说 这俩个没什么区别喽
细微区别 执行的时候 $array[0] 少调用一次 C的strtol函数(其实是:__strtol_internal函数)
没区别吗? 加上单引号代表是string ?非int
$array = array("1" => "bar1", "0" => "bar2")
$array[0] -> bar1
$array['0'] -> bar2
没区别吗? 加上单引号代表是string ?非int
$array = array("1" => "bar1", "0" => "bar2")
$array[0] -> bar1
$array['0'] -> bar2
同意楼上的看法
中括号中的是键值可以是整型和字符串类型 ' ' 表示是字符串的类型,若果不加则认为是整型0
只要是数字,就没有数值类型和字符类型的区别
var_dump(3.2 == '3.2'); //true
因为都是数字 0,所以没有区别
如果换成1 2 3 之类的呢??
键名的数据类型不一样,加上单引号运行速度可以提高
没区别吗? 加上单引号代表是string ?非int
$array = array("1" => "bar1", "0" => "bar2")
$array[0] -> bar1
$array['0'] -> bar2
同意楼上的看法
中括号中的是键值可以是整型和字符串类型 ' ' 表示是字符串的类型,若果不加则认为是整型0
PHP数组中如果索引字符串可以被转换成数字也会被转换成数字索引 多了步转换过程
没区别吗? 加上单引号代表是string ?非int
$array = array("1" => "bar1", "0" => "bar2")
$array[0] -> bar1
$array['0'] -> bar2
试着敲了下,结果输出的都是bar2,所以还是楼上的观点“PHP数组中如果索引字符串可以被转换成数字也会被转换成数字索引 多了步转换过程 ”
?字???。
但
$array[a] 合 $array['a'] 有??,前者?影?效率。
只要是数字,就没有数值类型和字符类型的区别
var_dump(3.2 == '3.2'); //true
因为都是数字 0,所以没有区别
如果换成1 2 3 之类的呢??
那个返回True,是因为自动转换数据类型来比较了,如果你换成用===来对比,返回的就是false了。
php是弱类型的语言,在运算的时候会自动转换为合适的数据类型。
刚才做了下测试,得出了这样的结论:
带引号的整数字符串会自动转换成数字,做为整数索引,非整数数字则不会转换,仍旧按字符串索引来对待。
不带引号的数字,非整数的会取整后做为整数索引
另外,未变定义为常量的字符串做为索引,不带引号的话,虽然能得到正确的结果,但是会有警告错误。
推荐阅读
-
$array[0]与$array['0']的区别
-
(composer中psr-0和psr-4的区别)与(psr-0规范和psr-4规范的区别)是不一样的吧?
-
php数组函数序列之array_values() 获取数组元素值的函数与方法_PHP
-
php in_array 函数使用说明与in_array需要注意的地方说明_PHP
-
php中array_merge与array+array的区别
-
array_slice()与array_splice()这两个函数的区别是什么,突然糊涂了
-
element vue Array数组和Map对象的添加与删除操作
-
PHP中,0和null的区别
-
软件测试学习 之 Python os._exit()&sys.exit()、exit(0)&exit(1) 的用法和区别
-
【python】os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别