zoukankan      html  css  js  c++  java
  • PHP中const,static,public,private,protected的区别

    原文地址:http://small.aiweimeng.top/index.php/archives/54.html

    const: 定义常量,一般定义后不可改变
    static: 静态,类名可以访问
    public: 表示全局,类内部外部子类都可以访问;
    private: 表示私有的,只有本类内部可以使用;
    protected: 表示受保护的,只有本类或子类或父类中可以访问;

    定义常量也可用```define```定义。

    const与define在定义常量时会有如下区别:

    1. const用于类成员变量,一经定义不可修改,define用于全局常量,不可用于类成员变量的定义,
    const可在类中使用,define不能。
    2. const定义的常量大小写敏感,而define可通过第三个参数(为TRUE表示大小写不敏感)来指定大小写是否敏感。
    在运行时定义一个常量。define('TXE',100,TRUE);
    3. const不能在条件语句中定义常量,而define函数可以。if($a>10){define('LE','hello');}

    class Demo
    {
    
        //定义常量【自php5.3后】,一个常量是属于一个类的,而不是某个对象的
        //不可改变的
        const EVENT = 'const';
    
        static $event = 'static';
    
        public $eventPublic = 'public';
    
        private $eventPrivate = 'private';
    
        protected $eventProtected = 'protected';
    
    
        public function test()
        {
            //使用self访问类中定义的常量
            echo self::EVENT.'<br/>';
    
            //同常量一样使用self
            echo self::$event.'<br/>';
    
            //公共变量,受保护的变量,私密的变量通过$this访问
            echo $this->eventPublic.'<br/>';
    
            //受保护的和私密的变量只能在当前类中访问
            echo $this->eventPrivate.'<br/>';
            echo $this->eventProtected.'<br/>';
        }
    
    
        //魔术方法
        public function __get($name)
        {
            return $this->$name;
        }
    
    }
    
    
    class One extends Demo
    {
    
        public function testOne()
        {
            //可继承父级使用parent访问
            echo parent::EVENT.'<br/>';
            echo parent::$event.'<br/>';
    
            //也可通过父类直接访问
            echo Demo::EVENT.'<br/>';
            echo Demo::$event.'<br/>';
    
            //继承父级中的成员变量后,只能访问公共变量
            //私有变量和受保护的变量不能在子类中访问
            echo $this->eventPublic;
    
        }
    
    }
    $obj_1 = new Demo;
    $obj_1->test();
    echo "=================<br/>";
    $obj = new One;
    $obj->testOne();
    

      

    运行结果:

    const
    static
    public
    private
    protected
    =================
    const
    static
    const
    static
    public
    

      

  • 相关阅读:
    百度统计图标消失了?
    C#中的变量类型var
    弗恩15693桌面读写器在win8下的测试
    JSON格式标准:http://www.ietf.org/rfc/rfc4627.txt?number=4627
    PHP中文乱码(转自百度文库)(记住:不管怎么样,用navicat创建数据库时选择utf8编码.)
    html2pdf:生成pdf应用
    win2003系统下apache、php、mysql安装以及虚拟主机和目录权限设置(转载)
    (转载)java环境变量配置
    (转)smarty里使用php函数
    (转载)php 知道某年中第几天计算出日期年月日
  • 原文地址:https://www.cnblogs.com/smallKilts/p/10552968.html
Copyright © 2011-2022 走看看