PHP对象属性赋值丢失问题?
程序员文章站
2022-06-08 17:13:55
...
name = 'zhangsan';
}
public function test2()
{
print_r($this->name);
}
}
$obj = new demo();
$obj->test1();
$obj->test2(); // 输出 zhangsan
我在一个PHP文件里面执行结果如上,但是我用框架开发网站测试调用的时候执行流程如下:
1.我的test1方法跳到模板 ,并且方法里将$name 赋值了 'lisi'
2.模板提交的时候提交到了test2,并且打印出属性$name为空
这是为啥呢??
回复内容:
name = 'zhangsan';
}
public function test2()
{
print_r($this->name);
}
}
$obj = new demo();
$obj->test1();
$obj->test2(); // 输出 zhangsan
我在一个PHP文件里面执行结果如上,但是我用框架开发网站测试调用的时候执行流程如下:
1.我的test1方法跳到模板 ,并且方法里将$name 赋值了 'lisi'
2.模板提交的时候提交到了test2,并且打印出属性$name为空
这是为啥呢??
想到的几种可能
1.不是同一个实例
前后引用对象的方式是否真的引用到同一个实例上?
2.有魔术方法改变了行为
php
{self::confuse($name)} = $value; } private static function confuse($name) { return substr($name, 0, 4) !== 'bad_' ? "bad_$name" : $name; } } $o = new BadAss; $o->name = 'value'; var_dump($o);//bad_name => value
是一个实体么
你要获取$name 直接使用$obj->name 不就获取了。