是否可以做这样的事情:
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'
你只需要在函数内部进行处理,你不能只在类内部有回显。
编辑:
受保护将允许您仅在后代类中使用该变量。 如果这就是您要查找的内容