PHP:无法访问受保护的变量
我为这两门课写练习:PHP:无法访问受保护的变量,php,oop,Php,Oop,我为这两门课写练习: abstract class SocialNetworks { abstract protected function getFacebookGraph(); } // class SocialNetworks class GetSocialNetworks extends SocialNetworks { protected $fbData; public function setFacebookData($facebookData) {
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中的第一个练习,所以我需要学习越来越多的内容。在其他语言中,您可以不使用“this”访问类成员。php并非如此。在这里,您必须始终使用“$this”。取决于范围:
$this->variable
用于对象内部
self::$variable
用于静态类内部
parent::$variable
用于在子对象内部访问父类
$variable
在本地范围内使用
类成员不是本地的,它们是相对超级的。这很正常,不用担心。
$this->fbData
是指对象属性时的语法<代码>$fbData是指自由变量。这是。在阅读Jon关于属性的链接后,请阅读可见性