方法和变量声明中的 PHP 数组与 [ ]

2022-08-30 08:55:22

我有一个关于PHP语法的问题。

定义函数和变量时,我应该使用哪种约定?

我知道他们在实践中做同样的事情,但我想知道哪种方法符合最佳实践标准。

变量

public $varname = array();

public $varname = [];

方法

public function foo($bar = array()){}

public function foo($bar = []){}

答案 1

PSR-2PSR-12(由 PHP Framework Interoperability Group 提供)没有提到短数组语法。但正如您在第 4.3 章中看到的,它们使用短数组语法将默认值设置为空数组。$arg3

因此,对于 PHP >= 5.4,短数组语法似乎是事实上的标准。仅当您希望脚本在 PHP <5.4 上运行时才使用 。array()


答案 2

来自 PHP 文档

从 PHP 5.4 开始,您还可以使用短数组语法,它将 array() 替换为 []。

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// as of PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

如果您尝试在低于5.4的版本中使用“[]”表示法,它将失败,PHP将抛出一个syntax error

为了向后兼容,您应该使用语法。array()


推荐