浅析php面向对象public private protected 访问修饰符


Posted in PHP onJune 30, 2013

PHP中有三种访问修饰符,分别是:
     public(公共的、默认)
     protected(受保护的)
     private(私有的)
public(公共的、默认)在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。
protected(受保护的)被声明为protected的成员,只允许该类的子类进行访问。
private(私有的 ) 被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。
 
图解
浅析php面向对象public private protected 访问修饰符
demo

class Woman{
    public $name = "gaojin";
    protected $age = "22";
    private $height = "170";
    function info(){
        echo $this->name;
    }
    private function say(){
        echo "这是私有的方法";
    }
}
//$w = new Woman();
//echo $w->info();
//echo $w->name;//公共属性可以访问
//echo $w->age;// 受保护属性,报致命错误
//echo $w->height;// 受保护属性,报致命错误
//私有方法,访问出错
//$w->say(); // 私有方法,访问出错
class Girl extends Woman{
    // 可以重新定义父类的public和protected方法,但不能定义private的
  //protected $name = "jingao"; // 可以从新定义
    function info(){
        echo $this->name;
        echo $this->age;
        echo $this->height;
    }
    function say(){
        //parent::say();//私有方法 不能被继承  如果父类的的say方法是protected 这里就不会报错
        echo "我是女孩";
    }
}
$g = new Girl();
$g->say();//正常输出
//echo $g->height;//私有属性访问不到 没输出结果
//$g->info();//这是输出 gaojin22 $height是私有的属性没有被继承
//$g->height ="12";//这里是重新定义 height属性 也赋值了 
//$g->info();//所以这里会输出来gaojin2212
PHP 相关文章推荐
一周学会PHP(视频)Http下载
Dec 12 PHP
PHP 模板高级篇总结
Dec 21 PHP
简单的php中文转拼音的实现代码
Feb 11 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
PHP小技巧之函数重载
Jun 02 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
PHP使用缓存即时输出内容(output buffering)的方法
Aug 03 PHP
Yii2 rbac权限控制操作步骤实例教程
Apr 29 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
Jun 06 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
php微信公众号开发之秒杀
Oct 20 PHP
解析link_mysql的php版
Jun 30 #PHP
分享8个最佳的代码片段在线测试网站
Jun 29 #PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 #PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 #PHP
探讨:web上存漏洞及原理分析、防范方法
Jun 29 #PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 #PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
Jun 29 #PHP
You might like
将数组写入txt文件 var_export
2009/04/21 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
vue中appear的用法
2017/08/17 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
Python中的引用和拷贝浅析
2014/11/22 Python
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
wxPython之解决闪烁的问题
2018/01/15 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
网络管理专业求职信
2014/03/15 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书