<?php

Home  >  Article  >  php教程  >  php的public、protected、private三种访问控制模式的区别

php的public、protected、private三种访问控制模式的区别

WBOY
WBOYOriginal
2016-06-06 19:45:02869browse

public:公有类型 在子类中可以通过self::var调用public方法或属性,parent::method调用父类方法 在实例中可以能过$obj-var来调用 public类型的方法或属性 protected:受保护类型 在子类中可以通过self::var调用protected方法或属性,parent::method调用父类方法

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是指当前对像

附代码:

php的public、protected、private三种访问控制模式的区别php的public、protected、private三种访问控制模式的区别/**
php的public、protected、private三种访问控制模式的区别 * parent 只能调用父类中的公有或受保护的方法,不能调用父类中的属性
php的public、protected、private三种访问控制模式的区别 * self  可以调用父类中除私有类型的方法和属性外的所有数据
php的public、protected、private三种访问控制模式的区别 */
php的public、protected、private三种访问控制模式的区别class User{
php的public、protected、private三种访问控制模式的区别    public $name;
php的public、protected、private三种访问控制模式的区别    private $passwd;
php的public、protected、private三种访问控制模式的区别    protected $email;    
php的public、protected、private三种访问控制模式的区别    public  function __construct(){
php的public、protected、private三种访问控制模式的区别        //print __CLASS__." ";
php的public、protected、private三种访问控制模式的区别        $this->name= 'simple';
php的public、protected、private三种访问控制模式的区别        $this->passwd='123456';
php的public、protected、private三种访问控制模式的区别        $this->email = 'bjbs_270@163.com';
php的public、protected、private三种访问控制模式的区别    }    
php的public、protected、private三种访问控制模式的区别    public function show(){
php的public、protected、private三种访问控制模式的区别        print "good ";
php的public、protected、private三种访问控制模式的区别    }    
php的public、protected、private三种访问控制模式的区别    public function inUserClassPublic() {
php的public、protected、private三种访问控制模式的区别        print __CLASS__.'::'.__FUNCTION__." ";
php的public、protected、private三种访问控制模式的区别    }    
php的public、protected、private三种访问控制模式的区别    protected  function inUserClassProtected(){
php的public、protected、private三种访问控制模式的区别        print __CLASS__.'::'.__FUNCTION__." ";
php的public、protected、private三种访问控制模式的区别    }    
php的public、protected、private三种访问控制模式的区别    private function inUserClassPrivate(){
php的public、protected、private三种访问控制模式的区别        print __CLASS__.'::'.__FUNCTION__." ";
php的public、protected、private三种访问控制模式的区别    }
}
php的public、protected、private三种访问控制模式的区别
php的public、protected、private三种访问控制模式的区别class simpleUser extends User {    
php的public、protected、private三种访问控制模式的区别    public function __construct(){        
php的public、protected、private三种访问控制模式的区别        //print __CLASS__." ";
php的public、protected、private三种访问控制模式的区别        parent::__construct();
php的public、protected、private三种访问控制模式的区别    }
php的public、protected、private三种访问控制模式的区别    
php的public、protected、private三种访问控制模式的区别    public function show(){
php的public、protected、private三种访问控制模式的区别        print $this->name."//public ";        
php的public、protected、private三种访问控制模式的区别        print $this->passwd."//private ";
php的public、protected、private三种访问控制模式的区别        print $this->email."//protected ";
php的public、protected、private三种访问控制模式的区别    }
php的public、protected、private三种访问控制模式的区别    
php的public、protected、private三种访问控制模式的区别    public function inSimpleUserClassPublic() {
php的public、protected、private三种访问控制模式的区别        print __CLASS__.'::'.__FUNCTION__." ";
php的public、protected、private三种访问控制模式的区别    }
php的public、protected、private三种访问控制模式的区别    
php的public、protected、private三种访问控制模式的区别    protected function inSimpleUserClassProtected(){
php的public、protected、private三种访问控制模式的区别        print __CLASS__.'::'.__FUNCTION__." ";
php的public、protected、private三种访问控制模式的区别    }
php的public、protected、private三种访问控制模式的区别    
php的public、protected、private三种访问控制模式的区别    private function inSimpleUserClassPrivate() {
php的public、protected、private三种访问控制模式的区别        print __CLASS__.'::'.__FUNCTION__." ";
php的public、protected、private三种访问控制模式的区别    }
php的public、protected、private三种访问控制模式的区别}
php的public、protected、private三种访问控制模式的区别
php的public、protected、private三种访问控制模式的区别class adminUser extends simpleUser {
php的public、protected、private三种访问控制模式的区别    protected $admin_user;
php的public、protected、private三种访问控制模式的区别    public function __construct(){
php的public、protected、private三种访问控制模式的区别        //print __CLASS__." ";
php的public、protected、private三种访问控制模式的区别        parent::__construct();
php的public、protected、private三种访问控制模式的区别    }
php的public、protected、private三种访问控制模式的区别    
php的public、protected、private三种访问控制模式的区别    public function inAdminUserClassPublic(){
php的public、protected、private三种访问控制模式的区别        print __CLASS__.'::'.__FUNCTION__." ";
php的public、protected、private三种访问控制模式的区别    }
php的public、protected、private三种访问控制模式的区别    
php的public、protected、private三种访问控制模式的区别    protected function inAdminUserClassProtected(){
php的public、protected、private三种访问控制模式的区别        print __CLASS__.'::'.__FUNCTION__." ";
php的public、protected、private三种访问控制模式的区别    }
php的public、protected、private三种访问控制模式的区别    
php的public、protected、private三种访问控制模式的区别    private function inAdminUserClassPrivate(){
php的public、protected、private三种访问控制模式的区别        print __CLASS__.'::'.__FUNCTION__." ";
php的public、protected、private三种访问控制模式的区别    }
php的public、protected、private三种访问控制模式的区别}
php的public、protected、private三种访问控制模式的区别
php的public、protected、private三种访问控制模式的区别class administrator extends adminUser {
php的public、protected、private三种访问控制模式的区别    public function __construct(){        
php的public、protected、private三种访问控制模式的区别        parent::__construct();
php的public、protected、private三种访问控制模式的区别    }
php的public、protected、private三种访问控制模式的区别}
php的public、protected、private三种访问控制模式的区别
php的public、protected、private三种访问控制模式的区别/**
php的public、protected、private三种访问控制模式的区别 * 在类的实例中 只有公有属性和方法才可以通过实例化来调用
php的public、protected、private三种访问控制模式的区别 */
php的public、protected、private三种访问控制模式的区别$s = new administrator();
php的public、protected、private三种访问控制模式的区别print '-------------------';
php的public、protected、private三种访问控制模式的区别$s->show();
php的public、protected、private三种访问控制模式的区别?>

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn