浅析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 相关文章推荐
THINKPHP+JS实现缩放图片式截图的实现
Mar 07 PHP
PHP stream_context_create()作用和用法分析
Mar 29 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 PHP
改写函数实现PHP二维/三维数组转字符串
Sep 13 PHP
PHP将XML转数组过程详解
Nov 13 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
yii操作cookie实例简介
Jul 09 PHP
php随机抽奖实例分析
Mar 04 PHP
php 防止表单重复提交两种实现方法
Nov 03 PHP
老生常谈文本文件和二进制文件的区别
Feb 27 PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 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实现原比例生成缩略图的方法
2016/02/03 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
浅谈php调用python文件
2019/03/29 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
基于jquery的tab切换 js原理
2010/04/01 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
Bootstrap Table使用整理(一)
2017/06/09 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
express 项目分层实践详解
2018/12/10 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
python字符串连接的N种方式总结
2014/09/17 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
Django中反向生成models.py的实例讲解
2018/05/30 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
python3 kubernetes api的使用示例
2021/01/12 Python
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
五一劳动节慰问信
2015/02/14 职场文书
Docker部署Mysql8的实现步骤
2022/07/07 Servers