我有一個名爲$initValues
陣列,其包含字符串或數字值,並使用foreach
循環我想將這些值傳送到$values
陣列和所述類型的每個值爲$types
。問題與通過引用傳遞值到一個數組
代碼:
$initValues = ["1-2", "2-1"];
$values = [];
$types = [];
foreach ($initValues as $value) {
$values[] = &$value; # by reference.
$types[] = gettype($value);
}
正如可以在上面的代碼中看到的,我通過引用$values
,其通過稍後使用的功能所需要的插入值,以使得可以不會改變。當我執行上面的代碼,並顯示使用var_dump($values)
的結果,我得到如下:
array(2) { [0]=> &string(3) "2-1" [1]=> &string(3) "2-1" }
上述結果的問題是,基本上是我的$values
陣列的兩個要素是的最後一個元素$initValues
而不是既作爲在所希望的結果,這是:
array(2) { [0]=> &string(3) "1-2" [1]=> &string(3) "2-1" }
如果我由值每個值輸入到陣列中的結果是COR但是我後來面臨一個問題,所以這不是一個選項。我如何修改我的代碼,以便產生所需的結果?
你應該避免使用參考儘可能傳遞的變量。隨着應用程序的增長它可以給你很多麻煩.. –
我與你對@MateiMihai,但該特定功能是內置的並需要參考。這是在我的手中;) –