博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php public private protected 修饰词
阅读量:4294 次
发布时间:2019-05-27

本文共 2220 字,大约阅读时间需要 7 分钟。

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

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是指当前对像
附代码:

name= 'simple';        $this->passwd='123456';        $this->email = 'bjbs_270@163.com';    }        public function show(){        print "good ";    }        public function inUserClassPublic() {        print __CLASS__.'::'.__FUNCTION__." ";    }        protected  function inUserClassProtected(){        print __CLASS__.'::'.__FUNCTION__." ";    }        private function inUserClassPrivate(){        print __CLASS__.'::'.__FUNCTION__." ";    }}class simpleUser extends User {        public function __construct(){                //print __CLASS__." ";        parent::__construct();    }        public function show(){        print $this->name."//public ";                print $this->passwd."//private ";        print $this->email."//protected ";    }        public function inSimpleUserClassPublic() {        print __CLASS__.'::'.__FUNCTION__." ";    }        protected function inSimpleUserClassProtected(){        print __CLASS__.'::'.__FUNCTION__." ";    }        private function inSimpleUserClassPrivate() {        print __CLASS__.'::'.__FUNCTION__." ";    }}class adminUser extends simpleUser {    protected $admin_user;    public function __construct(){        //print __CLASS__." ";        parent::__construct();    }        public function inAdminUserClassPublic(){        print __CLASS__.'::'.__FUNCTION__." ";    }        protected function inAdminUserClassProtected(){        print __CLASS__.'::'.__FUNCTION__." ";    }        private function inAdminUserClassPrivate(){        print __CLASS__.'::'.__FUNCTION__." ";    }}class administrator extends adminUser {    public function __construct(){                parent::__construct();    }}/** * 在类的实例中 只有公有属性和方法才可以通过实例化来调用 */$s = new administrator();print '-------------------';$s->show();?>

 

转载地址:http://cfyws.baihongyu.com/

你可能感兴趣的文章
CocoaPods安装和使用教程
查看>>
Beginning Auto Layout Tutorial
查看>>
block使用小结、在arc中使用block、如何防止循环引用
查看>>
iPhone开发学习笔记002——Xib设计UITableViewCell然后动态加载
查看>>
iOS开发中遇到的问题整理 (一)
查看>>
Swift code into Object-C 出现 ***-swift have not found this file 的问题
查看>>
为什么你的App介绍写得像一坨翔?
查看>>
RTImageAssets插件--@3x可自动生成@2x图片
查看>>
iOS开发的一些奇巧淫技
查看>>
常浏览的博客和网站
查看>>
Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
查看>>
点击button实现Storyboard中TabBar Controller的tab切换
查看>>
Xcode 的正确打开方式——Debugging
查看>>
打包app出现的一个问题
查看>>
iOS在Xcode6中怎么创建OC category文件
查看>>
Expanding User-Defined Runtime Attributes in Xcode with Objective-C
查看>>
iOS7 UITabBar自定义选中图片显示为默认蓝色的Bug
查看>>
提升UITableView性能-复杂页面的优化
查看>>
25 iOS App Performance Tips & Tricks
查看>>
那些好用的iOS开发工具
查看>>