是否有可能做这样的事情:
class foo {
private $private = 'A';
}
class bar extends foo {
echo $this->private;
}
bar returns null...
如果变量 $private 不能被子类访问,我真的很喜欢它,但我不确定它是否可能仅仅基于基于类的开发范式。
私有属性不提供我正在寻找的功能。
我知道这不是准确的 PHP 代码,但这只是一个示例;)
是否有可能做这样的事情:
class foo {
private $private = 'A';
}
class bar extends foo {
echo $this->private;
}
bar returns null...
如果变量 $private 不能被子类访问,我真的很喜欢它,但我不确定它是否可能仅仅基于基于类的开发范式。
私有属性不提供我正在寻找的功能。
我知道这不是准确的 PHP 代码,但这只是一个示例;)
这就是它已经工作的方式。请参阅文档:
可以通过在声明前加上关键字 public、protected 或 private 来定义属性或方法的可见性。声明为 public 的类成员可以在任何地方访问。声明为受保护的成员只能在类本身内以及被继承类和父类访问。声明为私有的成员只能由定义该成员的类访问。
在此处查看示例:http: //codepad.org/Yz4yjDft
私有属性不提供我正在寻找的功能。
在我看来,这正是你想要的。如果不是,请详细说明。
class foo {
protected $private = 'A';
}
class bar extends foo {
function __construct() {
echo $this->private;
}
}
new bar();
// will echo 'A'
你只需要在一个函数内进行处理,你不能在你的类里有回声。
编辑:
protected 将允许您仅在后代类中使用该变量。如果这就是你要找的