【发布时间】:2016-12-24 12:11:33
【问题描述】:
我有一个全局数组,我试图在其中更新一个值(保持持久性)然后显示它。
我没有收到错误,但数组永远不会更新。
<?php
$anchor = 'bird';
$stuff = array('apple', 'bird', 'frog');
function insert($anchor, $stuff){
foreach($stuff as $part){
$new_array = array($anchor => rand());
if($part == $anchor){
array_push($stuff, $new_array);
}
}
}
for($x = 0; $x < 2; $x++){
insert($anchor, $stuff);
var_dump($stuff);
}
输出:
array(3) {
[0]=>
string(5) "apple"
[1]=>
string(4) "bird"
[2]=>
string(4) "frog"
}
array(3) {
[0]=>
string(5) "apple"
[1]=>
string(4) "bird"
[2]=>
string(4) "frog"
}
预期输出:
{'鸟' => 674568765}
{'鸟' => 986266261}
如何更新函数内的数组,以便全局反映更改(持久)?
【问题讨论】:
-
PHP 变量是按值而不是通过引用传递给函数的。 stackoverflow.com/questions/879/…
-
要更新原始数组,您需要从函数返回一个值并将其分配给数组变量。