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

php:为什么要声明一个数组$array=array()-它的好处是什么?,php,arrays,variables,Php,Arrays,Variables,如果您只是想以这种方式为变量赋值:$array[]=value 1和$array[]=value 2do您首先必须声明$array=array吗?很明显,你不必这样做,因为没有它它也能工作,但是你为什么要这样做呢?或者这样做的好处是什么?主要是为了记录。它提醒开发人员该变量将用作数组 例如,在CodeIgniter中,您可以将值传递给视图,但它们必须是数组,否则它会引发异常。将变量声明为数组会提醒您,即使要传递单个值,也必须将其作为数组中的元素插入。主要用于文档目的。它提醒开发人员该变量将用作数

如果您只是想以这种方式为变量赋值:$array[]=value 1和$array[]=value 2do您首先必须声明$array=array吗?很明显,你不必这样做,因为没有它它也能工作,但是你为什么要这样做呢?或者这样做的好处是什么?

主要是为了记录。它提醒开发人员该变量将用作数组


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

主要用于文档目的。它提醒开发人员该变量将用作数组


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

我认为主要是可读性。5个月后,可能会有人或你自己出现,并想知道$array[]从何而来,因为它神奇地出现在代码中。使用$myArray=array,您至少知道,嘿,这是我们第一次看到变量的地方。

我认为主要是可读性。5个月后,可能会有人或你自己出现,并想知道$array[]从何而来,因为它神奇地出现在代码中。使用$myArray=array,您至少知道,嘿,这是我们第一次看到变量的地方。

在构建代码时,它也可能很有用。例如,如果我们首先在顶部声明变量

<?php
$myArray = array();

//...
在底部,我们加载一个模板文件$template->render'template.html',$myArray


假设我们有一个if语句,如果某个条件为true,我们将为数组分配一个新值。但是,如果条件不为true,我们将不会向数组传递任何信息新值,因此数组将不会启动-除非未声明数组,否则它将生成错误。但既然是这样,我们只需加载一个空数组,就不会有错误。

在构建代码时,它也可能很有用。例如,如果我们首先在顶部声明变量

<?php
$myArray = array();

//...
在底部,我们加载一个模板文件$template->render'template.html',$myArray


假设我们有一个if语句,如果某个条件为true,我们将为数组分配一个新值。但是,如果条件不为true,我们将不会向数组传递任何信息新值,因此数组将不会启动-除非未声明数组,否则它将生成错误。但既然是这样,我们只需加载一个空数组,就不会有错误。

您所描述的不是声明,而是初始化。您不是在声明$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;

您所描述的不是一个声明,而是一个初始化。您不是在声明$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;
不,你没有

通常,我使用空数组初始化数组的唯一时间如下:

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

echo implode(', ', $list);
$array = array
(
    "value 1",
    "value 2",
);
如果数据库结果中碰巧没有行,则内爆调用将失败,因为$list将不存在

你举的例子,只是设置一个你已经知道的值列表,我通常这样做:

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

echo implode(', ', $list);
$array = array
(
    "value 1",
    "value 2",
);
不,你没有

通常,我使用空数组初始化数组的唯一时间如下:

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

echo implode(', ', $list);
$array = array
(
    "value 1",
    "value 2",
);
如果数据库结果中碰巧没有行,则内爆调用将失败,因为$list将不存在

你举的例子,只是设置一个你已经知道的值列表,我通常这样做:

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

echo implode(', ', $list);
$array = array
(
    "value 1",
    "value 2",
);

谢谢,说得好!虽然如果在这个数组上使用任何函数,比如end$array或其他什么,即使数组声明为空,它也会
uld导致错误。。。所以你在任何情况下都必须检查一下,不是吗?谢谢,说得好!虽然如果在此数组上使用任何函数,如end$array或其他任何函数,即使该数组声明为空,也会导致错误。。。所以你无论如何都得检查一下,不是吗?