我有一个名为$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,但该特定功能是内置的并需要参考。这是在我的手中;) –