![](/img/trans.png)
[英]What's the PHP syntax for statement [$var1, $var2] = someMethod();?
[英]What does PHP syntax $var1[] = $var2 mean?
PHP語法$var1[] = $var2
是什么意思?
注意$var1
變量后的[]
。
這意味着$var1
是一個數組,並且此語法意味着您要將$var2
插入到數組末尾的新元素中。
因此,如果您的數組之前有2個元素,如下所示:
$var1=( 1 => 3, 2 => 4)
並且$ var2的值為5,它看起來不會像這樣:
$var1=( 1 => 3, 2 => 4, 3 => 5)
這也意味着,如果$ var2本身是一個數組,則您剛剛創建了一個二維數組。 假設以下內容:
$var1=( 1 => 3, 2 => 4)
$var2=( 1 => 10, 2=>20)
做一個$var1[]=$var2;
將導致這樣的數組:
$var1=( 1 => 3, 2 => 4, 3 => (1 =>10, 2 => 20))
順便說一句,如果您還沒有使用多維數組,則訪問數據非常簡單。 如果我想使用新數組中的值20,可以按以下方式進行操作:
echo $var1[3][2];
請注意第二組方括號-基本上,您是說我要訪問$ var1數組的元素3內的數組的元素2。
關於這一點,有一件事情需要注意。 如果使用多維數組,則此語法可以使您陷入某種循環結構中。 假設您有一個二維數組,用於存儲一些記錄並希望從數據庫中獲取更多記錄:
$var1 = (
1 => (id =>1, age => 25, posts => 40),
2 => (id =>2, age => 29, posts => 140),
3 => (id =>3, age => 32, posts => 12)
)
如下所示的循環:
while($row=someDatabaseRow)
{
$var1[]=$row['id']; // value 4
$var1[]=$row['age']; // value 21
$var1[]=$row['posts']; // value 34
}
實際上將為每個執行插入一個新元素,因此您的數組最終將如下所示:
$var1 = (
1 => (id =>1, age => 25, posts => 40),
2 => (id =>2, age => 29, posts => 140),
3 => (id =>3, age => 32, posts => 12),
4 => 4,
5 => 21,
6 => 34
)
正確的方法是先組裝數組,然后將其附加到當前數組以維護結構,如下所示:
while($row=someDatabaseRow)
{
$tempArr= array();
$tempArr[]=$row['id']; // value 4
$tempArr[]=$row['age']; // value 21
$tempArr[]=$row['posts']; // value 34
$var1[]=$tempArr;
}
現在,您的數組將看起來像您期望的那樣,即:
$var1 = (
1 => (id =>1, age => 25, posts => 40),
2 => (id =>2, age => 29, posts => 140),
3 => (id =>3, age => 32, posts => 12)
4 => (id =>4, age => 21, posts => 34)
)
這意味着您要將var2
的值推入數組var1
。
這是array_push()
的簡寫
它將創建$var1
和數組(如果尚未創建)並將$var2
推入其中。
它基本上使$ var1成為數組,並在其末尾添加$ var2的值。
$var1 = NULL;
$var2 = 'abc';
$var1[] = $var2;
$ var1現在是一個包含一個值的數組:'abc'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.