公共范围:属性(方法,变量等)可以从任何文件中的任何类访问。
class Example {
public $foo;
}
$example = new Example;
$example->foo = 3; // everything OK
private scope:property只能由同一个类访问。
class Example {
private $foo;
}
class Child_Class extends Example {
public function some_method()
{
parent::foo = 3; // raises error
}
}
受保护的范围:属性只能由相同的类或其它扩展它的类来访问。
class Example {
protected $foo;
}
class Child_Class extends Example {
public function some_method()
{
parent::foo = 3; // this is OK
}
}
这一切都与一个名为技术封装,在你不能让一个类成员的状态或行为给类以外的被改变的事情。 http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)
看起来真的错了。怪不得PHP总是用丑陋的棍子涂上;-) – Phil 2011-04-08 02:11:06
@Phil是的,这种模式是否被推荐是另一回事...... ;-) – deceze 2011-04-08 02:16:33
这真棒!哈哈 – Sufendy 2011-04-08 03:13:41