当前位置:首页 > PHP教程 > php应用 > 列表

PHP中的public,private和protected的区别

发布:smiling 来源: PHP粉丝网  添加日期:2020-01-07 15:43:09 浏览: 评论:0 

public,private和protected称为访问修饰符。就像C ++一样,PHP也有三个访问修饰符,如public,private和protected。可以通过在声明前加上这些关键字来定义属性,方法或常量的可见性。

1.如果类成员声明为public,那么它可以在任何地方访问。

2.如果类成员声明为protected,则只能在类本身内以及继承和父类中访问它。

3.如果类成员声明为private,则它只能由定义该成员的类访问。

public:此修饰符在内部和外部都可以使用。

例:

  1. <?php 
  2.  
  3. class pub { 
  4.  
  5.     public $tag_line = "PHP粉丝网!"
  6.  
  7.     function display() { 
  8.  
  9.         echo $this->tag_line."<br/>"
  10.  
  11.     } 
  12.  
  13.  
  14.  
  15. class child extends pub { 
  16.  
  17.     function show(){ 
  18.  
  19.         echo $this->tag_line; 
  20.  
  21.     } 
  22.  
  23.  
  24.  
  25. $objnew child;  
  26.  
  27. echo $obj->tag_line."<br/>" 
  28.  
  29. $obj->display();  
  30.  
  31. $obj->show(); 

输出:

PHP粉丝网!

PHP粉丝网!

PHP粉丝网!

protected:此修饰符可在其定义的类及其父类或继承类中使用。

例:

  1. <?php  
  2.  
  3. class pro {  
  4.  
  5.     protected $x = 500;  
  6.  
  7.     protected $y = 500;  
  8.  
  9.                 
  10.  
  11.     function sub()   
  12.  
  13.     {  
  14.  
  15.         echo $sum=$this->x-$this->y . "<br/>";  
  16.  
  17.     }       
  18.  
  19. }   
  20.  
  21.     
  22.  
  23. class child extends pro {  
  24.  
  25.     function mul()  
  26.  
  27.     {  
  28.  
  29.         echo $sub=$this->x*$this->y;  
  30.  
  31.     }  
  32.  
  33. }   
  34.  
  35.     
  36.  
  37. $objnew child;  
  38.  
  39. $obj->sub();  
  40.  
  41. $obj->mul();  
  42.  
  43. ?> 

输出:

0

250000

private:此修饰符可在定义它的类中使用。(它不能在类外部访问意味着继承类)。

例:

  1. <?php 
  2.  
  3. class demo { 
  4.  
  5.     private $name="PHP中文网"
  6.  
  7.  
  8.  
  9.     private function show() 
  10.  
  11.     { 
  12.  
  13.         echo "这是基(父)类的私有方法"
  14.  
  15.     } 
  16.  
  17.  
  18.  
  19.  
  20. class child extends demo { 
  21.  
  22.     function display() 
  23.  
  24.     { 
  25.  
  26.         echo $this->name; 
  27.  
  28.     } 
  29.  
  30.  
  31. //phpfensi.com 
  32.  
  33. $objnew child; 
  34.  
  35. $obj->show(); 
  36.  
  37. $obj->display(); 

输出:069e62fab11cc99cffb02dc0851a839.png如图显示错误,因为无法在类外访问私有类数据。

Tags: public private protected

分享到: