鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全/ PHP 類中的私有變量,初始化后重新定義,類中的方法取不到該變量的值,為什么?

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="張三";
// 調(diào)用tell() 方法,但是$this->name 沒有值
$a->tell();

回答
編輯回答
囍槑

__set() 里面賦值寫錯了,尷尬

public function __set($property,$value){
    $this->$property = $value;   //   $this->property = $value;  這樣是錯的
}
2017年11月28日 07:09
編輯回答
孤巷

這個你了解了 __set() 為啥沒了解到 __get()
http://php.net/manual/zh/lang...
clipboard.png

現(xiàn)在的代碼相當(dāng)于,你設(shè)置了私有屬性name,但是私有屬性在類的外部是不能訪問的

2017年5月12日 01:41