如果您只是想以這種方式將值分配給變量:$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