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


PHP: access to a protected variable impossible

我正在为练习这 2 节课而写:

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->variable用于对象内部

self::$variable用于静态类内部

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

$variable在本地范围内使用

类成员不是本地的,它们是相对超级的。

在其他语言中,您可以访问没有"this"的类成员。php不是这种情况。在这里,您都必须使用"$this"。