2014-04-20 93 views
1

是什麼swap($a, $a)的「&」之間,並與差增加了swap(&$a, &$a)差異運營商PHP

<?php 
function swap($x, $y) { 
$x = $x + 1; 
$y = $y + 2; 
return $x * $y; 
} 

$a = 2; 
$b = swap($a, $a); 
print "$a, $b"; 
$b = swap(&$a, &$a); 
print "$a, $b"; 
?> 

注:不問答案,只是寫了這個,所以我可以提供一個例子。謝謝。

+1

你確定這是不是一個PHP的問題? –

+0

抱歉意味着寫PHP一直在做JavaScript工作,它弄亂了我的大腦:P – user3364498

+0

[PHP:References Explained](http://www.php.net/manual/en/language.references.php) – h2ooooooo

回答

1

&表示該參數是通過引用傳遞的。這個問題確實是重複的,但請注意,您不應該再使用通話時間通過引用。

passing by reference page on php.net

在PHP 5.3.0中,你會得到一個警告說「呼叫時間 傳遞通過引用」當你在使用富時&不贊成(& $一個);。而作爲PHP 5.4.0的 ,呼叫時傳遞引用被刪除,因此使用它 將引發致命錯誤。

什麼,你仍然可以使用函數定義的&做:

function swap(&$x, &$y) { 
    $x = $x + 1; 
    $y = $y + 2; 
    return $x * $y; 
}