php如何解释语法$ var [] = $ val?

时间:2012-09-13 02:22:40

标签: php web-applications syntax

当我发现以下内容时,我正在查看一些继承的PHP代码:

$emails=array();
foreach($usrs as $usr){
    $emails[]=$usr['email'];
}

很明显,这是在尝试提取用户列表中每个对象的“email”属性并将其保存在数组中。这就是我想要的。这样做吗?我从来没有见过这样的事情。我用

替换了它
array_push($emails, $usr['email']);

因为我知道那就是我想要的。

3 个答案:

答案 0 :(得分:2)

两者几乎相同。

它会在数组的末尾添加一个项目,就像array_push一样。唯一的区别是array_push返回数组中新的元素数。显然,空括号表示法不会返回任何内容。

你应该对这种表示法感到满意,输入和阅读会更容易。

array_push on PHP docs提到了这种表示法的使用,并提到了另外两个不同之处。

  

注意:如果使用array_push()向数组添加一个元素,最好使用$ array [] =,因为这样就没有调用函数的开销。

     

注意:如果第一个参数不是数组,array_push()将发出警告。这与创建新数组的$ var []行为不同。

答案 1 :(得分:1)

如果要将多个元素推送到数组,则可以使用array_push

array_push($emails, $var1, $var2, $var3, ...);

否则,如果只将一个元素推送到数组,只需使用:

$emails[] = $var;

为您节省一个函数调用。

答案 2 :(得分:0)

是的,它做同样的事情。分配到$array[]相当于将元素推送到$array

此外,它看起来更漂亮,所以使用它;)