0

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

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

很明显,这是试图提取用户列表中每个对象的“电子邮件”属性并将它们保存在一个数组中。这就是我想要它做的。这是这样做的吗?我从来没有见过这样的事情。我把它换成了

array_push($emails, $usr['email']);

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

4

3 回答 3

2

两者差不多,差不多。

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

你应该对这个符号感到满意,它更容易打字和阅读。

array_push在 PHP 文档中提到了这种表示法的使用,并且还涵盖了其他两个差异。

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

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

于 2012-09-13T02:28:44.193 回答
1

当您想将多个元素推送到一个数组时,您可以使用array_push.

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

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

$emails[] = $var;

这为您节省了一个函数调用。

于 2012-09-13T02:29:43.293 回答
0

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

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

于 2012-09-13T02:24:28.243 回答