如果您只是想以这种方式将值分配给变量:$array[]="value 1"
和$array[]="value 2"
您是否首先必须声明$array=array()
?显然你不需要,因为它没有它,但为什么你会那样做呢?或者做什么的好处?
1
A
回答
1
你所描述的不是一个声明,而是一个初始化。你没有声明$ array是一个数组,你正在给它赋值(空数组)。
这样的初始化可以被用来建立一个范围,也许它可以使代码更易读(虽然我不能看到),但通常当你特别想要一个空数组它只是做。经典的例子是当使用[]语法附加到数组。考虑以下内容:
$a = 'old value';
$a = array();
$a[] = 1;
$a[] = 2;
$a[] = 3;
没有第二行,这将产生一个错误。
顺便提及,所述的阵列()命令不是普通的功能。它是一种语言结构,从PHP 5.4开始,您可以用较短的[]语法替换它:
$a = 'old value';
$a = [];
$a[] = 1;
$a[] = 2;
$a[] = 3;
0
主要用于文件的目的。它提醒开发人员,该变量旨在用作数组。
作为一个例子,在笨,可以将值传递给一个视图,但它们必须是一个数组或抛出异常。声明变量为array()
提醒您,即使您打算传递单个值,也必须将其作为元素插入到数组中。
2
我认为大部分可读性。有人可能(或者你自己5个月后)出现并想知道$ array []来自哪里,因为它“神奇地出现在代码中”。用$ myArray = array(),你至少知道(嘿,这是我们第一次看到变量的地方)。
1
它也可能是有用的,当你构建你的代码。例如,如果我们先声明的前
<?php
$myArray = array();
//...
变量并在底部我们加载一个模板文件$template->render('template.html', $myArray);
比方说,我们有一个if语句,如果某些条件为真,我们分配新值给数组。但是如果条件不成立,我们不会传递任何信息(数组中的新值),因此数组不会被启动 - 它会产生一个错误,除非该数组未被声明。但既然是这样,我们只需加载一个空数组并且不会有错误。
0
不,您不需要。
一般来说,我初始化数组与空数组的唯一时间是在类似案例:
$list = array();
for($database_result as $row)
{
$list[] = $row['value'];
}
echo implode(', ', $list);
如果它正好是在数据库中的结果没有任何行,则implode
通话将失败,因为$ list不存在。
你给的只是设定值的列表,你已经知道了,这个例子,我一般这样做:
$array = array
(
"value 1",
"value 2",
);
相关问题
- 1. 为什么&array!=&array [0]?
- 2. 什么是string array [] =“”;是什么意思?为什么它有效?
- 3. Array声明和Collection声明之间有什么区别
- 4. 为什么Array不等于数组(javascript)?
- 5. 为什么Array(99999)比Array(100000)慢
- 6. “Array(n)”和“[... Array(n)]”有什么区别?
- 7. array [ROWS] [COLS]和** array有什么区别
- 8. array_merge和array + array有什么区别?
- 9. 为什么`{} .toString.apply(array)`工作?
- 10. Array.prototype.slice.call(array,0)有什么用?
- 11. typeof == ==“array”有什么问题?
- 12. 为什么要使用websocket,使用它有什么好处?
- 13. 为什么Array#slice和Array#slice!行为有所不同?
- 14. PHP中为什么'Array()'而不是'new Array()'?
- 15. $ array [] = new stdClass;为什么array []而不是array
- 16. Array String声明
- 17. 为什么@array ~~ $数字与@array == $数字不同?
- 18. 使用javascript Array reduce()方法有什么实际好处吗?
- 19. 为什么我要声明<PHP
- 20. array $ arr + = array $ arr1是做什么的?
- 21. 为什么不是我的数组代码工作? php 5 array
- 22. 为什么count($ array)函数不计算?
- 23. Cakephp,它有什么好处?
- 24. Assert() - 它有什么好处?
- 25. 为什么数组实例中没有内置Array方法?
- 26. 为什么printf“$ {array [@]} \ n”打印我数组的所有元素?
- 27. 当我们在JavaScript中声明Array(4)时会发生什么?
- 28. PHP:`array(&$ this)`是什么意思?
- 29. 为什么这个PHP构造不是一个数组,btw它是什么,如果不是一个数组?
- 30. Ruby的Array#shift做什么?
感谢,好点!尽管如果在这个数组上使用任何函数,比如'end($ array)'或者其他任何函数,即使数组被声明但是是空的,它也会导致错误...所以你必须在任何情况下检查它,没有? – Helmut