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();

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

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

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

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

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

推荐问题