PHP数组:语法变体

时间:2012-05-02 20:48:50

标签: php pointers

前几天我遇到了这个php语法,我不熟悉它。我猜它可能会推动,但我真的不知道。这*与array_push($b)完全相同吗?如果它正在完成类似的事情,请解释它是如何不同的。

    $foo = array();
    foreach($bar as $b)
    {
        $foo[] = $b; //push?
    }

2 个答案:

答案 0 :(得分:4)

唯一的区别是对array_push()进行函数调用所涉及的一小部分额外开销与使用语言结构[]附加到数组上相比。它们在功能上是等价的。

除非你做了数百万次,否则它们与函数调用之间的区别将完全微不足道,你不必担心它。

答案 1 :(得分:2)

由于函数调用的开销,

$foo[] = $b会稍快一些(如Michael所述)。

此外,作为stated in the manual,如果array_push的第一个参数不是数组,则会引发通知。使用数组括号表示法只会创建一个新数组(如果它尚不存在)。