我有此PHP代碼PHP陣列基準
$a = array('one');
$b[0] = &$a[0];
$c = $a;
$b[0] = 'three';
$a = array('two');
var_dump($a); echo '<br/>';
var_dump($b); echo '<br/>';
var_dump($c); echo '<br/>';
其輸出此 - >
array(1) { [0]=> string(3) "two" }
array(1) { [0]=> &string(5) "three" }
array(1) { [0]=> &string(5) "three" }
$ B和$一個點爲相同的值,但$ C不應指向相同的值,它應該有它自己的值的副本。然後,當我將$ b的值更改爲三時,我不明白爲什麼$ c的值也會發生變化。我怎樣才能防止這一點?此外,當我將$ a的值更改爲'two'時,爲什麼$ b也不會更改爲'two'?
在此先感謝。
你想完成什麼?如果我們不知道你爲什麼首先參考,很難提供幫助。 –
任何人都可以創建他們不理解的複雜代碼。與其弄清楚什麼不起作用,爲什麼不嘗試真正蒸餾你想做的事情,而是解決這個問題。哦,不要使用引用(作爲一般規則)... – ircmaxell
這就是我正在做的。我必須動態地將變量綁定到mysqli_stmt :: bind_result,所以我這樣做, for($ i = 0; $ i <$ n_result; $ i ++){$ b_res [$ i] =&$ result [$ i] ; } call_user_func_array(array($ stmt,「bind_result」),$ b_res) 其中$ result是執行後返回的列數。然後,當我這樣做,while($ stmt-> fetch()){array_push($ r_val,$ b_res);} 我得到的是結果集的最後一行。這是因爲我發佈的問題而發生的。有沒有辦法我只能將值複製到新變量然後返回? – maurya8888