当前位置:首页 > PHP教程 > php面向对象 > 列表

分享下php5类中三种数据类型的区别

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-09 15:01:23 浏览: 评论:0 

这篇文章主要介绍了php5类中三种数据类型的区别,需要的朋友可以参考下

public: 公有类型

在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法

在实例中可以能过$obj->var 来调用 public类型的方法或属性

protected: 受保护类型

在子类中可以通过self::var 来调用 protected类型的方法或属性 可以通过parent::method 来调用父类中的方法

在实例中不能通过$obj->var 来调用 protected类型的方法或属性

private: 私有类型

该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法

2.self 和 parent 的区别

a).在子类中常用到这两个对像。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用

b).self:: 它表示当前类的静态成员(方法和属性) 与 $this 不同,$this是指当前对像

附代码:

  1. <?php 
  2. /** 
  3.  * parent 只能调用父类中的公有或受保护的方法,不能调用父类中的属性 
  4.  * self  可以调用父类中除私有类型的方法和属性外的所有数据 
  5.  */ 
  6. class User{ 
  7.  public $name; 
  8.  private $passwd; 
  9.  protected $email;  
  10.  public function __construct(){ 
  11.   //print __CLASS__." "; 
  12.   $this->name= 'simple'; 
  13.   $this->passwd='123456'; 
  14.   $this->email = 'bjbs_270@163.com'; 
  15.  }  
  16.  public function show(){ 
  17.   print "good "; 
  18.  }  
  19.  public function inUserClassPublic() { 
  20.   print __CLASS__.'::'.__FUNCTION__." "; 
  21.  }  
  22.  protected function inUserClassProtected(){ 
  23.   print __CLASS__.'::'.__FUNCTION__." "; 
  24.  }  
  25.  private function inUserClassPrivate(){ 
  26.   print __CLASS__.'::'.__FUNCTION__." "; 
  27.  } 
  28. } 
  29.  
  30. class simpleUser extends User {  
  31.  public function __construct(){   
  32.   //print __CLASS__." "; 
  33.   parent::__construct(); 
  34.  } 
  35.    
  36.  public function show(){ 
  37.   print $this->name."//public ";   
  38.   print $this->passwd."//private "; 
  39.   print $this->email."//protected "; 
  40.  } 
  41.    
  42.  public function inSimpleUserClassPublic() { 
  43.   print __CLASS__.'::'.__FUNCTION__." "; 
  44.  } 
  45.    
  46.  protected function inSimpleUserClassProtected(){ 
  47.   print __CLASS__.'::'.__FUNCTION__." "; 
  48.  } 
  49.    
  50.  private function inSimpleUserClassPrivate() { 
  51.   print __CLASS__.'::'.__FUNCTION__." "; 
  52.  } 
  53. } 
  54.  
  55. class adminUser extends simpleUser { 
  56.  protected $admin_user; 
  57.  public function __construct(){ 
  58.   //print __CLASS__." "; 
  59.   parent::__construct(); 
  60.  } 
  61.    
  62.  public function inAdminUserClassPublic(){ 
  63.   print __CLASS__.'::'.__FUNCTION__." "; 
  64.  } 
  65.    
  66.  protected function inAdminUserClassProtected(){ 
  67.   print __CLASS__.'::'.__FUNCTION__." "; 
  68.  } 
  69.    
  70.  private function inAdminUserClassPrivate(){ 
  71.   print __CLASS__.'::'.__FUNCTION__." "; 
  72.  } 
  73. } 
  74.  
  75. class administrator extends adminUser { 
  76.  public function __construct(){   
  77.   parent::__construct(); 
  78.  } 
  79. } 
  80.  
  81. /** 
  82.  * 在类的实例中 只有公有属性和方法才可以通过实例化来调用 
  83.  */ 
  84. $s = new administrator(); 
  85. print '-------------------'; 
  86. $s->show(); 
  87. ?>

Tags: php5类 php5数据类型

分享到: