浅析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生成缩略图的代码
Jan 12 PHP
从康盛产品(discuz)提取出来的模板类
Jun 28 PHP
QQ登录 PHP OAuth示例代码
Jul 20 PHP
PHP数据类型之布尔型的介绍
Apr 28 PHP
PHP运行模式的深入理解
Jun 03 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
php定时执行任务设置详解
Feb 06 PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 PHP
Yii使用migrate命令执行sql语句的方法
Mar 15 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
Jul 31 PHP
设定php简写功能的方法
Nov 28 PHP
Yii框架小部件(Widgets)用法实例详解
May 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
利用PHP制作简单的内容采集器的原理分析
2008/10/01 PHP
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
TMDPHP 模板引擎使用教程
2012/03/13 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
PHP处理会话函数大总结
2015/08/05 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
jquery图形密码实现方法
2015/03/11 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
Python简单的制作图片验证码实例
2017/05/31 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
django2笔记之路由path语法的实现
2019/07/17 Python
Python Django路径配置实现过程解析
2020/11/05 Python
python遍历路径破解表单的示例
2020/11/21 Python
特色冷饮店创业计划书
2014/01/28 职场文书
全神贯注教学反思
2014/02/03 职场文书
生日庆典策划方案
2014/06/02 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
民事起诉书范本
2015/05/19 职场文书
入党介绍人意见2015
2015/06/01 职场文书
开国大典观后感
2015/06/04 职场文书
PyTorch 如何自动计算梯度
2021/05/23 Python
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android
Go语言基础函数基本用法及示例详解
2021/11/17 Golang