如何在 PHP 中保护类属性免受扩展类



是否可以做这样的事情:

class foo {
    private $private = 'A';
}
class bar extends foo {
    echo $this->private;
}
bar returns null...

如果子类无法访问变量$private,我真的很喜欢它,但我不确定仅仅基于基于类的开发范式是否可能

私有属性不提供我正在寻找的功能。

我知道这不是准确的PHP代码,但这只是一个示例;)

这就是它已经工作的方式。请参阅文档:

属性或方法的可见性可以通过在声明前面加上关键字 public、protected 或 private 来定义。声明为公共的类成员可以在任何地方访问。声明为受保护的成员只能在类本身内访问,并且只能由继承类和父类访问。声明为私有的成员只能由定义成员的类访问

请参阅此处的示例:http://codepad.org/Yz4yjDft

私有属性不提供我正在寻找的功能。

在我看来,这正是你想要的。如果没有,请详细说明。

class foo {
    protected $private = 'A';
}
class bar extends foo {
    function __construct() {
        echo $this->private;
    }
}
 new bar();
// will echo 'A' 

你只需要在函数内部进行处理,你不能只在类内部有回显。

编辑:

受保护将允许您仅在后代类中使用该变量。 如果这就是您要查找的内容

相关内容

  • 没有找到相关文章

最新更新