浅析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 相关文章推荐
文章推荐系统(二)
Oct 09 PHP
discuz论坛 用户登录 后台程序代码
Nov 27 PHP
php中实现记住密码下次自动登录的例子
Nov 06 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
PHP整合七牛实现上传文件
Jul 03 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
PHP大神的十大优良习惯
Sep 14 PHP
对PHP依赖注入的理解实例分析
Oct 09 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
Mar 30 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 判断变量类型实现代码
2009/10/23 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
一则python3的简单爬虫代码
2014/05/26 Python
更改Python命令行交互提示符的方法
2015/01/14 Python
介绍Python中的__future__模块
2015/04/27 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
办公室内勤工作职责
2013/12/11 职场文书
代理商会议邀请函
2014/01/27 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
刊首寄语大全
2014/04/11 职场文书
美容院合作经营协议书
2014/10/10 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
2016年全国爱牙日宣传活动总结
2016/04/05 职场文书
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers