猿问

这样做php数组为什么没有被改变?

privatefunctionreset_config($conf,$set_conf='')
{
$set_conf=&$set_conf==''?$this->config:$set_conf;
foreach($confas$key=>$value)
{
if(isset($set_conf[$key]))
{
if(is_string($value))
{
$set_conf[$key]=$value;
}
elseif(is_array($value))
{
$set_conf[$key]=$this->reset_config($value,$set_conf[$key]);
}
}
}
}
$this->config是当前函数所在类的一个多维配置数组,希望通过传入一个数组$conf来覆盖可能需要改变的值,但是函数调用之后$this->config数组的值依然没有改变,不知是不是引用传值没用呢?
森栏
浏览 371回答 2
2回答

陪伴而非守候

把foreach循环里的$value变量改为&$value试一下另外该方法里的第一行:$set_conf=&$set_conf==''?$this->config:$set_conf;这里的=&没有看懂是什么意思!

慕哥6287543

privatefunctionreset_config($conf,&$set_conf='')这么做,会将$set_conf的引用传进来,修改也就会修改本身
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答