我对PHP语法有疑问.
在定义函数和变量时,我应该使用哪种约定?
我知道他们在实践中做了同样的事情,但我想知道哪种方法符合最佳实践标准.
变量
public $varname = array();
Run Code Online (Sandbox Code Playgroud)
要么
public $varname = [];
Run Code Online (Sandbox Code Playgroud)
方法
public function foo($bar = array()){}
Run Code Online (Sandbox Code Playgroud)
要么
public function foo($bar = []){}
Run Code Online (Sandbox Code Playgroud)
Bre*_*hse 63
PSR-2(由PHP Framework Interoperability Group提供)未提及短数组语法.但正如您在第4.3章中所看到的,它们使用短数组语法将默认值设置为$arg3
空数组.
因此,对于PHP> = 5.4,短阵列语法似乎是事实上的标准.array()
如果您希望脚本在PHP <5.4上运行,请仅使用.
Nit*_*eli 22
来自PHP 文档:
从PHP 5.4开始,您还可以使用短数组语法,它将array()替换为[].
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// as of PHP 5.4
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>
Run Code Online (Sandbox Code Playgroud)
如果您尝试在早于5.4的版本中使用'[]'表示法,它将失败,PHP将抛出一个 syntax error
为了向后兼容,您应该使用array()
语法.
刚刚进行了测试,以了解[]如何执行vs array(),这就是我得到的
testing 1 million []s ( with $arr[] = [] )
started at : 1561298821.8754
ended at: 1561298822.6881
difference: 0.81266021728516 seconds
testing 1 million array()s ( with array_push( $arr, array()) )
started at : 1561298822.6881
ended at: 1561298823.843
difference: 1.1549289226532 seconds
testing 1 million []s ( again while the processor is hotter)
started at : 1561298823.8431
ended at: 1561298824.7448
difference: 0.9017219543457 seconds
Run Code Online (Sandbox Code Playgroud)
因此[]的执行速度提高了约20%
归档时间: |
|
查看次数: |
20997 次 |
最近记录: |