PHP中[]短语法与array()语法创建数组有什么区别?
PHP两种数组定义语法的差异结论
这两种写法生成的数组不存在任何差异,最终得到的变量值、结构、类型完全一致,输出结果也完全相同。
[]是PHP 5.4版本新增的短数组语法,array()是PHP从最早版本就支持的传统数组语法,二者仅书写形式不同,PHP底层解析后生成的数组实体没有区别。- 两段代码定义的都是默认索引数组,元素顺序、键值、键名完全一致:索引从0开始依次对应"Sagittarius"、"Cancer"、"Gemini"、"Pisces"四个字符串值。
你可以用以下代码直接验证一致性:
<?php // 短数组写法 $short_arr = ["Sagittarius", "Cancer", "Gemini", "Pisces"]; // 传统array()写法 $traditional_arr = array("Sagittarius", "Cancer", "Gemini", "Pisces"); // 松散比较:值相等返回true var_dump($short_arr == $traditional_arr); // 严格比较:值和类型、顺序、键名完全一致返回true var_dump($short_arr === $traditional_arr);
上述代码两行比较都会输出bool(true),证明两个变量完全等价。
两种写法唯一的区别是适用场景:如果需要兼容PHP 5.3及更老的过时版本,只能用array()写法;目前主流PHP版本(7.x、8.x)环境下,更简洁的短数组写法是社区通用的首选写法,两种写法可以互相替换,不会引发任何逻辑差异。
内容的提问来源于stack exchange,提问作者nedhaskins
相关产品推荐
相关产品推荐

