zoukankan      html  css  js  c++  java
  • PHP面向对象——访问修饰符

        PHP中有三种访问修饰符,分别是:

    • public(公共的、默认)
    • protected(受保护的)
    • private(私有的)

        它们可以分别用在类的属性和方法上(类的属性和方法统称为类的成员),用来修饰类成员的访问权限。   

    public(公共的、默认)

        在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。

    /*
    以下两个方法声明访问权限效果相同
    */
    function say(){};
    publilc function say(){};

        当类的成员被声明为public的访问修饰符时,该成员能被外部代码访问和操作。

    private(私有的)

         被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。

    protected(受保护的)

          protected稍微有点复杂,被声明为protected的成员,只允许该类的子类进行访问。

         访问权限情况表:

    访问权限

    public

    protected

    private

    所有

    子类

    类内

    以下面的例子总结:

    <?php
    class Woman{
        public $name = 'lisa'; // 公共的访问权限
        protected $money = 3000.00; // 受保护的权限
        private $age = 35; // 私有的访问权限
        
        function printInfo(){
            echo $this->name; 
            echo $this->money;
            echo $this->age;
        }
    
        private function secret(){
            echo "这是个秘密!";
        }
    }
    
    $woman = new Woman();
    echo $woman->name; // 公共属性可以访问
    // echo $woman->money; // 受保护属性,报致命错误
    // echo $woman->age; // 私有属性,报致命错误
    
    $woman->printInfo(); // 可以打印三个属性的信息,因为printInfo是公共方法
    
    // $woman->secret(); // 私有方法,访问出错
    
    class Girl extends Woman{
    // 可以重新定义父类的public和protected方法,但不能定义private的
        // protected $money = 2000.00; // 可以从新定义
    
        function printInfo(){
            echo $this->name; 
            echo $this->money; 
            // echo $this->age; // 找不到属性
        }
    }
    
    $girl = new Girl();
    echo $girl->name; // 公共属性可以访问
    // echo $girl->money; // 受保护属性,报致命错误
    // echo $girl->age; // 私有属性,找不到属性
    $girl->printInfo(); // 显示$name,$money,找不到$age属性;
    ?>

    燕十八php公益课,网址:http://zixue.it/ ,YY频道:88354001,YY群:7840433

  • 相关阅读:
    LOJ 6089 小Y的背包计数问题 —— 前缀和优化DP
    洛谷 P1969 积木大赛 —— 水题
    洛谷 P1965 转圈游戏 —— 快速幂
    洛谷 P1970 花匠 —— DP
    洛谷 P1966 火柴排队 —— 思路
    51Nod 1450 闯关游戏 —— 期望DP
    洛谷 P2312 & bzoj 3751 解方程 —— 取模
    洛谷 P1351 联合权值 —— 树形DP
    NOIP2007 树网的核
    平面最近点对(加强版)
  • 原文地址:https://www.cnblogs.com/giantpanda/p/2760074.html
Copyright © 2011-2022 走看看