繁体   English   中英

试图了解PHP OOP

[英]Trying to understand PHP OOP

我想知道为什么以下代码不会打印出任何内容。 我正在尝试从父类中的方法访问Bar::$some_var 其中Bar::$some_var在其构造函数中定义。

我试过在Foo::hello()使用self::$some_varstatic::$some_var ,但都没有用。 我必须使$some_var static吗?

class Foo {

    private $some_var;

    public function __construct() {
        $this->some_var = 5;
    }

    public function hello() {
        print $this->some_var;
    }
}

class Bar extends Foo {

    public function __construct() {
        $this->some_var = 10;
    }
}

$bar = new Bar();
$bar->hello();

提前致谢。

private使成员变量在类外部不可用。 您需要使用protected来允许扩展类访问该变量。

protected $some_var;

查看可见性

如果您希望子类访问它,则该类变量不能为私有变量。 尝试改为受保护,它应该可以工作!

  • ::运算符用于访问类项目(常量,静态变量,静态方法)
  • ->运算符用于访问对象项(非静态属性和方法)

无论如何,在您的代码中,问题是$ some_var的可见性。 它必须受到几乎保护,公众也将工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM