浅析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 相关文章推荐
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
那些年我们错过的魔术方法(Magic Methods)
Jan 14 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
ThinkPHP中使用ajax接收json数据的方法
Dec 18 PHP
php采集中国代理服务器网的方法
Jun 16 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
PHP附件下载中文名称乱码的解决方法
Dec 17 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
php mysql like 实现多关键词搜索的方法
Oct 29 PHP
PHP中命名空间的使用例子
Mar 22 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
Oct 21 PHP
PHP 加密 Password Hashing API基础知识点
Mar 02 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
Laravel中validation验证 返回中文提示 全局设置的方法
2019/09/29 PHP
PHP代码加密的方法总结
2020/03/13 PHP
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
jQuery获取URL请求参数的方法
2015/07/18 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
JavaScript中的冒泡排序法
2016/08/03 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
python 快速排序代码
2009/11/23 Python
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
Python查询IP地址归属完整代码
2017/06/21 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
营销总监岗位职责范本
2014/02/26 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
《学会合作》教学反思
2014/04/12 职场文书
《画家乡》教学反思
2014/04/22 职场文书
庆七一晚会主持词
2015/06/30 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python