PHP 类变量怎么在方法里面不能直接使用?
class OtherObserver extends Observer {
protected $name = __CLASS__;
public function onListen($sender, $args) {
echo $this->name.' other observer..<br/>';
echo $name;//报错
}
}
运行结果:
onListen other observer..
Notice: Undefined variable: name
请问这个什么问题,为什么$this->name
就不错呢?这两个有什么区别吗?谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这个是变量作用域的问题,你这样写当然是访问不到的。
或者你在函数里面加一个global $name, 这样应该就可以访问了。
PHP的类方法中访问类变量必须用$this,访问静态变量和常量需要用::操作符
protected $name = __CLASS__; 相当于是这个类的一个属性,访问时需要用 $this->name 的方式访问,而 echo $name; 相当于是访问方法里的一个变量,但是这个方法里你并没有定义这个变量,所以就报错啦!!!