2014-01-28 46 views
0

我看到一個符號符號在foreach中的一個變量之前。我知道&符號用於獲取前面定義的變量地址。&符之前的一個變量php

我已經看到了這樣的代碼:

<?php 
$arr = array(1, 2, 3, 4); 
foreach ($arr as &$value) { 
    $value = $value * 2; 
} 

// $arr is now array(2, 4, 6, 8) 
unset($value); // break the reference with the last element 

?> 

我只需要知道$值之前使用&。我沒有看到之前聲明的任何變量來獲取變量地址。

請幫助我爲什麼它宣佈這樣。任何幫助,將不勝感激。

+0

http://www.php.net/manual/en /language.references.php –

+0

感謝在&符號中加上p –

+0

如果我們沒有使用ambersand沒有聲明它,它有沒有什麼問題? – user3220407

回答

3

在foreach塊中的符號允許陣列直接操作,因爲它通過引用獲取每個值。

$arr = array(1,2,3,4); 
foreach($arr as $value) { 
    $value *= 2; 
} 

在這種情況下,每個值都乘以2,然後立即丟棄。


$arr = array(1,2,3,4); 
foreach($arr as &$value) { 
    $value *= 2; 
} 

由於此通過引用傳遞中,陣列中的每個值實際上被改變(並因此,$arr變得array(2,4,6,8)

0

&符號不是PHP獨有的,實際上在其他語言(如C++)中使用。它表明你正在通過引用傳遞一個變量。只需谷歌「通過參考的PHP傳遞」,並且你需要向你解釋這一切的東西都會在那裏。一些有用的鏈接: