0
function a(&$c, &$d){
$c = &$d;
}
$a = 1;
$b = 2;
a($a, $b);
echo $a;
輸出爲1,但不應該輸出2,因爲$ c引用$ d。 $ c和$引用相同的值,那麼$ c引用$ d的值引用$ b,所以最終$ a應該引用$ b,這不正確嗎?如果函數內引用了一個變量,那麼會發生什麼
function a(&$c, &$d){
$c = &$d;
}
$a = 1;
$b = 2;
a($a, $b);
echo $a;
輸出爲1,但不應該輸出2,因爲$ c引用$ d。 $ c和$引用相同的值,那麼$ c引用$ d的值引用$ b,所以最終$ a應該引用$ b,這不正確嗎?如果函數內引用了一個變量,那麼會發生什麼
對於您尋求的操作,您必須刪除函數a中使用的&符號引用。
例
function swap (&$one, &$two) {
$tmp = $one; // One is stored temporarily
$one = $two; // Two is stored in One
$two = $tmp; // Temporary data retrieved and stored in two
unset($tmp); // Temporary variable destroyed
}
// Set the variables
$a = 1;
$b = 2;
echo $a . " - " . $b . "<br />"; // See output as: 1 - 2
swap($a, $b);
echo $a . " - " . $b; // See output as: 2 - 1
在管線
$ C = & $ d;
$一個指的是$ B的地址,而不是$ B,那麼你可以試試這個:
<?php
function foo(&$c, &$d){
$c = $d;
}
$a = 1;
$b = 2;
foo($a, $b);
echo $a;
?>
不能交換功能的內部參考,並期望它在它之外得到體現。 – 2014-09-21 12:11:45
所以在一個函數裏面做一個引用是沒用的 – 2014-09-21 13:24:48
那麼$ c現在指的是什麼? – 2014-09-22 11:43:54