我寫了這個鍛鍊2班:PHP:訪問受保護的變量不可能
abstract class SocialNetworks
{
abstract protected function getFacebookGraph();
} // class SocialNetworks
class GetSocialNetworks extends SocialNetworks
{
protected $fbData;
public function setFacebookData($facebookData) {
$this->fbData = $facebookData;
$this->getFacebookGraph($this->fbData);
}
protected function getFacebookGraph() {
print_r($this->fbData);
}
}
($facebookData
是一個數組)。
在這種模式下,這個類正確打印我傳遞的數組。
但我無法在任何模式下「直接」訪問$fbData
,但只能使用$this->fbData
。否則我得到
Undefined variable: fbData
這是正常的或者是有使用直接$fbData
我重複這些都是我在OOP首先練習的方法......,所以我需要學習更多。
這是正常現象,請不要擔心。 – dbf
'$ this-> fbData'是您引用對象屬性時的語法。 '$ fbData'指的是自由變量。這是[在手冊中解釋](http://www.php.net/manual/en/language.oop5.properties.php)。 – Jon
在閱讀Jon關於房產的鏈接之後,請閱讀有關可見性的文章http://www.php.net/manual/en/language.oop5.visibility.php –