浅析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代码
Dec 06 PHP
php读取EXCEL文件 php excelreader读取excel文件
Dec 06 PHP
IIS安装Apache伪静态插件的具体操作图文
Jul 01 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
PHP大神的十大优良习惯
Sep 14 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
php生出随机字符串
Jul 06 PHP
php实现微信支付之企业付款
May 30 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
PHP5.5新特性之yield理解与用法实例分析
Jan 11 PHP
PHP 99乘法表的几种实现代码
Oct 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
php5 and xml示例
2006/11/22 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
php自定义错误处理用法实例
2015/03/20 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
python实现问号表达式(?)的方法
2013/11/27 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
python实现数据图表
2017/07/29 Python
python实现Adapter模式实例代码
2018/02/09 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
Python如何将函数值赋给变量
2020/04/28 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
python中turtle库的简单使用教程
2020/11/11 Python
Servlet如何得到客户端机器的信息
2014/10/17 面试题
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
七年级作文之秋游
2019/10/21 职场文书