当前位置:Gxlcms > PHP教程 > php中对属性或方法的访问控制的介绍(代码示例)

php中对属性或方法的访问控制的介绍(代码示例)

时间:2021-07-01 10:21:17 帮助过:25人阅读

本篇文章给大家带来的内容是关于php中对属性或方法的访问控制的介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

PHP中对属性或方法的访问控制,是通过在前面添加关键字public(公有)、protected(受保护)或 private(私有)来实现的。被定义为public的类成员可以在任何地方被访问,被定义为protected的类成员则可以被其自身以及其子类和父类访问。被定义为private的类成员则只能被其定义所在的类访问。

类属性必须定义为public、protected或private。如果用var定义,则被视为public。子类可以修改基类public和protected的属性的值。

  1. <?php
  2. class A{
  3. var $a="a";
  4. protected $b="b";
  5. private $c="c";
  6. function printVar(){
  7. echo $this->a.";".$this->b.";".$this->c.";"."\n";
  8. }
  9. }
  10. class B extends A{
  11. public $a="aa";
  12. protected $b="bb";
  13. private $c="cc";
  14. }
  15. $a=new A();
  16. $a->printVar();
  17. $b=new B();
  18. $b->printVar();
  19. ?>

类的必须定义为public、protected或private。如果未指定则视为public。子类可以覆盖基类public和protected的函数。

  1. <?php
  2. class A{
  3. public function fa(){
  4. echo "A->fa\n";
  5. }
  6. protected function fb(){
  7. echo "A->fb\n";
  8. }
  9. private function fc(){
  10. echo "A->fc\n";
  11. }
  12. function showFoo(){
  13. $this->fa();
  14. $this->fb();
  15. $this->fc();
  16. }
  17. }
  18. class B extends A{
  19. function fa(){
  20. echo "B->fa\n";
  21. }
  22. protected function fb(){
  23. echo "B->fb\n";
  24. }
  25. private function fc(){
  26. echo "B->fc\n";
  27. }
  28. }
  29. $a=new A();
  30. $a->showFoo();
  31. $b=new B();
  32. $b->showFoo();
  33. ?>

同一个类的对象,即使不是同一个实例也可以互相访问对方的私有与受保护成员,因为这些对象的内部具体实现的细节都是已知的。

  1. <?php
  2. class A
  3. {
  4. private $a;
  5. public function __construct($a)
  6. {
  7. $this->a = $a;
  8. }
  9. private function fa()
  10. {
  11. echo 'private method fa.';
  12. }
  13. public function foo(A $other,$v)
  14. {
  15. $other->a = $v;
  16. var_dump($other->a);
  17. $other->fa();
  18. }
  19. }
  20. $a = new A('a');
  21. $aa=new A('aa');
  22. $a->foo($aa,'newA');
  23. ?>

以上就是php中对属性或方法的访问控制的介绍(代码示例)的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行