本篇文章给大家带来的内容是关于php中对属性或方法的访问控制的介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
PHP中对属性或方法的访问控制,是通过在前面添加关键字public(公有)、protected(受保护)或 private(私有)来实现的。被定义为public的类成员可以在任何地方被访问,被定义为protected的类成员则可以被其自身以及其子类和父类访问。被定义为private的类成员则只能被其定义所在的类访问。
类属性必须定义为public、protected或private。如果用var定义,则被视为public。子类可以修改基类public和protected的属性的值。
<?php class A{ var $a="a"; protected $b="b"; private $c="c"; function printVar(){ echo $this->a.";".$this->b.";".$this->c.";"."\n"; } } class B extends A{ public $a="aa"; protected $b="bb"; private $c="cc"; } $a=new A(); $a->printVar(); $b=new B(); $b->printVar(); ?>
类的必须定义为public、protected或private。如果未指定则视为public。子类可以覆盖基类public和protected的函数。
<?php class A{ public function fa(){ echo "A->fa\n"; } protected function fb(){ echo "A->fb\n"; } private function fc(){ echo "A->fc\n"; } function showFoo(){ $this->fa(); $this->fb(); $this->fc(); } } class B extends A{ function fa(){ echo "B->fa\n"; } protected function fb(){ echo "B->fb\n"; } private function fc(){ echo "B->fc\n"; } } $a=new A(); $a->showFoo(); $b=new B(); $b->showFoo(); ?>
同一个类的对象,即使不是同一个实例也可以互相访问对方的私有与受保护成员,因为这些对象的内部具体实现的细节都是已知的。
<?php class A { private $a; public function __construct($a) { $this->a = $a; } private function fa() { echo 'private method fa.'; } public function foo(A $other,$v) { $other->a = $v; var_dump($other->a); $other->fa(); } } $a = new A('a'); $aa=new A('aa'); $a->foo($aa,'newA'); ?>
以上是php中对属性或方法的访问控制的介绍(代码示例)的详细内容。更多信息请关注PHP中文网其他相关文章!