浅析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的ob_start() 控制您的浏览器cache
Aug 03 PHP
PHP_Cooikes不同页面无法传递的解决方法
Mar 07 PHP
PHP调用MySQL存储过程并返回值的方法
Dec 26 PHP
PHP输入输出流学习笔记
May 12 PHP
php获取json数据所有的节点路径
May 17 PHP
php循环table实现一行两列显示的方法
Jun 04 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
php实现概率性随机抽奖代码
Jan 02 PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
PHP abstract 抽象类定义与用法示例
May 29 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 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
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
Javascript MD4
2006/12/20 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
Javascript之高级数组API的使用实例
2019/03/08 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
利用Python如何实现一个小说网站雏形
2018/11/23 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
若干个Java基础面试题
2015/05/19 面试题
英文导游欢迎词
2014/01/11 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
学前班学生评语
2014/12/29 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android