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

yipeiwu_com7年前PHP代码库

PHP中有三种访问修饰符,分别是:
     public(公共的、默认)
     protected(受保护的)
     private(私有的)
public(公共的、默认)在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。
protected(受保护的)被声明为protected的成员,只允许该类的子类进行访问。
private(私有的 ) 被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。
 
图解

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

相关文章

PHP5常用函数列表(分享)

如下所示:复制代码 代码如下:  usleep() 函数延迟代码执行若干微秒。  unpack() 函数从二进制字符串对数据进行解包。  uniqid() 函数基于以微秒计的当前时间,生...

用php或asp创建网页桌面快捷方式的代码

用php或asp创建网页桌面快捷方式的代码

新建一个PHP文档:名字好记就行如:shortcut.php PHP文档中的内容: 代码 复制代码 代码如下: <?php $Shortcut = "[InternetShortc...

今天你说520了吗?不仅有php表白书还有java表白神器

今天你说520了吗?不仅有php表白书还有java表白神器

先来看看表白神器,点击这里下载,来表白吧! 不如就把这些感性的细枝末节放大吧,用代码写下520的“告白书” “自从遇见了你,就不停地想你。 编一个死循环, 让我们一直走,一直走。”...

php的PDO事务处理机制实例分析

本文实例讲述了php的PDO事务处理机制。分享给大家供大家参考,具体如下: 事务 (Transaction) 是操作数据库中很重要的一个功能, 它可以让你预定一条, 或者一系列 SQL...

PHP中break及continue两个流程控制指令区别分析

以下举例说明break 用来跳出目前执行的循环,并不再继续执行循环了。 复制代码 代码如下: <?php $i = 0; while ($i < 7) { if ($arr[...