php:为什么声明一个数组$ array = array() - 它有什么好处?

时间:2012-05-30 19:56:47

标签: php arrays variables

如果您只是想以这种方式为变量指定值:

$array[]="value 1"$array[]="value 2"
你首先必须声明{ {1}}?显然你没有,因为它没有它,但为什么你会这样做呢?或者这样做有什么好处?

5 个答案:

答案 0 :(得分:2)

我认为大部分是可读性。有人可能(或者你自己5个月后)出现并想知道$ array []来自哪里,因为它“神奇地出现在代码中”。使用$ myArray = array(),你至少知道(嘿,这是我们第一次看到变量的地方)。

答案 1 :(得分:1)

在构建代码时,它也很有用。例如,如果我们首先在顶部

中声明变量
<?php
$myArray = array();

//...

在底部我们加载模板文件$template->render('template.html', $myArray);

假设我们有一个if语句,如果某个条件为真,我们为数组赋一个新值。但是如果条件不正确,我们就不会传递任何信息(数组的新值),因此不会启动数组 - 除非未声明数组,否则会生成错误。但既然如此,我们只需加载一个空数组,就没有错误。

答案 2 :(得分:1)

您所描述的不是声明,而是初始化。您没有声明$ array是一个数组,您正在为它赋值(空数组)。

这样的初始化可以用来建立一个范围,也许它可以使代码更具可读性(虽然我看不清楚),但通常它只在你特别想要一个空数组时才能完成。典型的例子是使用[]语法追加到数组。请考虑以下事项:

$a = 'old value';
$a = array();
$a[] = 1;
$a[] = 2;
$a[] = 3;

如果没有第二行,则会产生错误。

顺便说一句,array()命令不是普通的函数。它是一种语言结构,从PHP 5.4开始,您可以用较短的[]语法替换它:

$a = 'old value';
$a = [];
$a[] = 1;
$a[] = 2;
$a[] = 3;

答案 3 :(得分:0)

主要用于记录目的。它提醒开发人员该变量旨在用作数组。

例如,在CodeIgniter中,您可以将值传递给视图,但它们必须是数组或引发异常。将变量声明为array()会提醒您,即使您打算传递单个值,也必须将其作为元素插入到数组中。

答案 4 :(得分:0)

不,你没有。

通常,我使用空数组初始化数组的唯一情况是:

$list = array();
for($database_result as $row)
{
    $list[] = $row['value'];
}

echo implode(', ', $list);

如果数据库结果中没有行,则implode调用将失败,因为$ list不存在。


您给出的示例,只是设置您已经知道的值列表,我通常会这样做:

$array = array
(
    "value 1",
    "value 2",
);