PHP:无法访问受保护的变量

时间:2013-10-22 11:44:55

标签: php oop

我正在写这两个课程:

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的第一次练习,所以我需要学习越来越多。

2 个答案:

答案 0 :(得分:1)

取决于范围:

$this->variable在对象

中使用

self::$variable在静态类

中使用

parent::$variable用于在子对象内部访问父类

$variable在本地范围内使用

班级成员不是本地成员,他们是相对超级的。

答案 1 :(得分:0)

在其他语言中,您可以访问没有“this”的班级成员。这不是php的情况。在这里你总是要使用“$ this”。