PHP 类中的私有变量,初始化后重新定义,类中的方法取不到该变量的值,为什么?

新手上路,请多包涵

问题描述

定了一个类 A ,A中有变量name ,通__set() 方法定义name 变量,A 中的方法tell 取不到name 的值,这是为什么,有没有办法可以去到name 的值
class A{

private $name;

public function __set($property,$value){
    $this->property = $value;
}

public function tell(){
    echo $this->name;
}

}

$a = new A();
$a->name="张三";
// 调用tell() 方法,但是$this->name 没有值
$a->tell();

阅读 2.9k
2 个回答
新手上路,请多包涵

__set() 里面赋值写错了,尴尬

public function __set($property,$value){
    $this->$property = $value;   //   $this->property = $value;  这样是错的
}

这个你了解了 __set() 为啥没了解到 __get()
http://php.net/manual/zh/lang...
clipboard.png

现在的代码相当于,你设置了私有属性name,但是私有属性在类的外部是不能访问的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题