浅析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的FTP学习(一)
Oct 09 PHP
简单的PHP缓存设计实现代码
Sep 30 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
Nov 05 PHP
PHP+JavaScript实现无刷新上传图片
Feb 21 PHP
php中的异常和错误浅析
May 03 PHP
php表单处理操作
Nov 16 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
Laravel框架验证码类用法实例分析
Sep 11 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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
收藏的一个php小偷的核心程序
2007/04/09 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
Python实现图像的垂直投影示例
2020/01/17 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
双语教学实施方案
2014/03/23 职场文书
教学改革实施方案
2014/03/31 职场文书
合作经营协议书范本
2014/04/17 职场文书
改革共识倡议书
2014/08/29 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
后勤工作个人总结
2015/02/28 职场文书
安全伴我行主题班会
2015/08/13 职场文书
竞聘书的秘诀
2019/04/02 职场文书
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js