当前位置:首页 > 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. class simpleUser extends User {  
  30.  public function __construct(){   
  31.   //print __CLASS__." "; 
  32.   parent::__construct(); 
  33.  } 
  34.    
  35.  public function show(){ 
  36.   print $this->name."//public ";   
  37.   print $this->passwd."//private "
  38.   print $this->email."//protected "
  39.  } 
  40.    
  41.  public function inSimpleUserClassPublic() { 
  42.   print __CLASS__.'::'.__FUNCTION__." "
  43.  } 
  44.    
  45.  protected function inSimpleUserClassProtected(){ 
  46.   print __CLASS__.'::'.__FUNCTION__." "
  47.  } 
  48.    
  49.  private function inSimpleUserClassPrivate() { 
  50.   print __CLASS__.'::'.__FUNCTION__." "
  51.  } 
  52.  
  53. class adminUser extends simpleUser { 
  54.  protected $admin_user
  55.  public function __construct(){ 
  56.   //print __CLASS__." "; 
  57.   parent::__construct(); 
  58.  } 
  59.    
  60.  public function inAdminUserClassPublic(){ 
  61.   print __CLASS__.'::'.__FUNCTION__." "
  62.  } 
  63.    
  64.  protected function inAdminUserClassProtected(){ 
  65.   print __CLASS__.'::'.__FUNCTION__." "
  66.  } 
  67.    
  68.  private function inAdminUserClassPrivate(){ 
  69.   print __CLASS__.'::'.__FUNCTION__." "
  70.  } 
  71.  
  72. class administrator extends adminUser { 
  73.  public function __construct(){   
  74.   parent::__construct(); 
  75.  } 
  76.  
  77. /** 
  78.  * 在类的实例中 只有公有属性和方法才可以通过实例化来调用 
  79.  */ 
  80. $s = new administrator(); 
  81. print '-------------------'
  82. $s->show(); 
  83. ?>

Tags: php5类 php5数据类型

分享到: