一个有关php数组作为函数参数传递的问题
<?php$name = array("Peter", "Jhon", "Smith");
function ChangeName(&$array){
$array .= " hello";
$array .= " hello";
$array .= " hello";
}
ChangeName($name);
foreach($name as $value)
print $value . "\n";
?>
我使用引用传参(传地址)的方式将数组name传递给ChangeName函数,然后通过通过
$array .= " hello";
$array .= " hello";
$array .= “ hello”;
这三个语句将原数组name修改,成功输出修改后的结果:
Peter hello
Jhon hello
Smith hello
但是当我将ChangeName函数的内容替换为:
function ChangeName(&$array){
foreach($array as $value)
$value .= " hello";
}
之后,就无法改变原数组,输出为:
Peter
Jhon
Smith
或者替换为:
function ChangeName(&$array){
for($i=0; $i<=2; $i++)
$array .= " hello";
}
输出则成了:
Peter
Jhon
Smith
hello hello hello
我是php的初学者,这个地方不是很明白,请大家指教。 第二个你这样写
function ChangeName(&$array){
foreach($array as &$value)
$value .= " hello";
}
第3个你少写了$
function ChangeName(&$array){
for($i=0; $i<=2; $i++)
$array[$i] .= " hello";
} 回复 2# bikong0411
多谢你的耐心解答,这下问题解决了。
不客气:):mrgreen:
页:
[1]