0

是否有可能做这样的事情:

class foo {
    private $private = 'A';
}

class bar extends foo {
    echo $this->private;
}

bar returns null...

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

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

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

4

2 回答 2

2

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

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

在此处查看示例:http: //codepad.org/Yz4yjDft

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

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

于 2011-05-08T01:55:43.213 回答
0
class foo {
    protected $private = 'A';
}

class bar extends foo {
    function __construct() {
        echo $this->private;
    }
}
 new bar();

// will echo 'A' 

你只需要在一个函数内进行处理,你不能在你的类里有回声。

编辑:

protected 将允许您仅在后代类中使用该变量。如果这就是你要找的

于 2011-05-08T01:56:18.127 回答