浅析php面向对象public private protected 访问修饰符

2015-01-24信息快讯网

本篇文章是对php面向对象public private protected 访问修饰符进行了详细的分析介绍,需要的朋友参考下

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

zf框架的db类select查询器join链表使用示例(zend框架)
zf框架的Filter过滤器使用示例
CodeIgniter框架中_remap()使用方法2例
php function用法如何递归及return和echo区别
解决Codeigniter不能上传rar和zip压缩包问题
Php中使用Select 查询语句的实例
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
php中sprintf与printf函数用法区别解析
PHP json_decode函数详细解析
php的sprintf函数的用法 控制浮点数格式
php中的filesystem文件系统函数介绍及使用示例
codeigniter教程之上传视频并使用ffmpeg转flv示例
php创建sprite
preg_match_all使用心得分享
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
两级联动select刷新后其值保持不变的实现方法
php object转数组示例
PHP删除HTMl标签的实现代码
解析link_mysql的php版
php selectradio和checkbox默认选择的实现方法详解
php小经验:解析preg_match与preg_match_all 函数
php setcookie(name, value, expires, path, domain, secure) 参数详解
浅析memcache启动以及telnet命令详解
解析file_get_contents模仿浏览器头(user_agent)获取数据
领悟php接口中interface存在的意义
php 去除html标记--strip_tags与htmlspecialchars的区别详解
比较strtr, str_replace和preg_replace三个函数的效率
深入file_get_contents与curl函数的详解
解析如何去掉CodeIgniter URL中的index.php
PHP Class&Object -- 解析PHP实现二叉树
PHP Class&Object -- PHP 自排序二叉树的深入解析
解析php中var_dump,var_export,print_r三个函数的区别
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
Function eregi is deprecated (解决方法)
©2014-2024 dbsqp.com