浅析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通用检测函数集合
Nov 25 PHP
php一句话cmdshell新型 (非一句话木马)
Apr 18 PHP
PHP file_exists问题杂谈
May 07 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
Nov 04 PHP
php实现按照权重随机排序数据的方法
Jan 09 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
golang 调用 php7详解及实例
Jan 04 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 PHP
PhpSpreadsheet设置单元格常用操作汇总
Nov 13 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操作数组相关函数
2011/02/03 PHP
PHP的SQL注入过程分析
2012/01/06 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
php源码的安装方法和实例
2019/09/26 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
使用vue构建一个上传图片表单
2017/07/04 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
Vue中图片Src使用变量的方法
2019/10/30 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
Python常用模块介绍
2014/11/21 Python
Python实现队列的方法
2015/05/26 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
python动态视频下载器的实现方法
2019/09/16 Python
python中如何使用insert函数
2020/01/09 Python
基于python的docx模块处理word和WPS的docx格式文件方式
2020/02/13 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
对公司合理化的建议书
2014/03/12 职场文书
离职证明格式样本
2015/06/12 职场文书
高三毕业感言
2015/07/30 职场文书
学生会任命书范本
2015/09/21 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书