$array[0]与$array['0']的区别

爱学习的小伙鸡 2015-01-09 09:58:24
如标题 $array0=$array[0]与$array0=$array['0']都可以得到数组的第一个值 求区别
...全文
371 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
李睿_Lee 2015-01-11
  • 打赏
  • 举报
回复
引用 9 楼 xuzuning 的回复:
只要是数字,就没有数值类型和字符类型的区别
var_dump(3.2 == '3.2'); //true
[quote=引用 4 楼 rengar7961 的回复:] [quote=引用 2 楼 xuzuning 的回复:] 因为都是数字 0,所以没有区别
如果换成1 2 3 之类的呢??[/quote][/quote] 那个返回True,是因为自动转换数据类型来比较了,如果你换成用===来对比,返回的就是false了。 php是弱类型的语言,在运算的时候会自动转换为合适的数据类型。 刚才做了下测试,得出了这样的结论: 带引号的整数字符串会自动转换成数字,做为整数索引,非整数数字则不会转换,仍旧按字符串索引来对待。 不带引号的数字,非整数的会取整后做为整数索引 另外,未变定义为常量的字符串做为索引,不带引号的话,虽然能得到正确的结果,但是会有警告错误。
傲雪星枫 2015-01-11
  • 打赏
  • 举报
回复
數字沒區別。 但 $array[a] 合 $array['a'] 有區別,前者會影響效率。
水亦未殇 2015-01-10
  • 打赏
  • 举报
回复
引用 7 楼 wind74181 的回复:
没区别吗? 加上单引号代表是string 並非int $array = array("1" => "bar1", "0" => "bar2") $array[0] -> bar1 $array['0'] -> bar2
试着敲了下,结果输出的都是bar2,所以还是楼上的观点“PHP数组中如果索引字符串可以被转换成数字也会被转换成数字索引 多了步转换过程 ”
  • 打赏
  • 举报
回复
引用 3 楼 fighttodeath 的回复:
编写程序还是通用规则写的好,这样代码规范,不容易出错,也方便其他人员阅读。
呐呐 就是说 这俩个没什么区别喽
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
因为都是数字 0,所以没有区别
如果换成1 2 3 之类的呢??
青稞 2015-01-09
  • 打赏
  • 举报
回复
编写程序还是通用规则写的好,这样代码规范,不容易出错,也方便其他人员阅读。
xuzuning 2015-01-09
  • 打赏
  • 举报
回复
因为都是数字 0,所以没有区别
PQianbei 2015-01-09
  • 打赏
  • 举报
回复
一般情况下不用单引号即可
侑子的小伙伴 2015-01-09
  • 打赏
  • 举报
回复
引用 8 楼 zp_00000 的回复:
[quote=引用 7 楼 wind74181 的回复:] 没区别吗? 加上单引号代表是string 並非int $array = array("1" => "bar1", "0" => "bar2") $array[0] -> bar1 $array['0'] -> bar2
同意楼上的看法 中括号中的是键值可以是整型和字符串类型 ' ' 表示是字符串的类型,若果不加则认为是整型0[/quote] PHP数组中如果索引字符串可以被转换成数字也会被转换成数字索引 多了步转换过程
_aluo 2015-01-09
  • 打赏
  • 举报
回复
键名的数据类型不一样,加上单引号运行速度可以提高
xuzuning 2015-01-09
  • 打赏
  • 举报
回复
只要是数字,就没有数值类型和字符类型的区别
var_dump(3.2 == '3.2'); //true
引用 4 楼 rengar7961 的回复:
[quote=引用 2 楼 xuzuning 的回复:] 因为都是数字 0,所以没有区别
如果换成1 2 3 之类的呢??[/quote]
benettzhang 2015-01-09
  • 打赏
  • 举报
回复
引用 7 楼 wind74181 的回复:
没区别吗? 加上单引号代表是string 並非int $array = array("1" => "bar1", "0" => "bar2") $array[0] -> bar1 $array['0'] -> bar2
同意楼上的看法 中括号中的是键值可以是整型和字符串类型 ' ' 表示是字符串的类型,若果不加则认为是整型0
Sherry7418 2015-01-09
  • 打赏
  • 举报
回复
没区别吗? 加上单引号代表是string 並非int $array = array("1" => "bar1", "0" => "bar2") $array[0] -> bar1 $array['0'] -> bar2
侑子的小伙伴 2015-01-09
  • 打赏
  • 举报
回复
细微区别 执行的时候 $array[0] 少调用一次 C的strtol函数(其实是:__strtol_internal函数)

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧