嗨,我想知道我做错了什么,以及如何将类变量保存到文件中。
class x{
public $xy=0;
function saveConfig($src){
$classArray = get_class_vars(get_class($this));
$line='';
foreach ($classArray as $k => $v) {
if(is_array($v)){
$line.=$k.'='.implode('|',$v)."rn";
}else if(isset($v)) $line.=$k.'='.$v."rn";
}
file_put_contents($src,$line);
echo $line;//test
return true;
}
}
这是测试类。运行时:
$test=new x;
$test->xy=5;
$test->saveConfig('testSrc.txt');
我将得到输出"xy=0",但我希望它保存/echo变量,这意味着"xy=5"。
这段代码有什么问题,为什么以及如何纠正它
将get_class_vars(get_class($this))
改为get_object_vars($this)
。get_class_vars
返回类的默认属性。get_object_vars
返回一个对象(一个类的实例)的当前属性。