zoukankan      html  css  js  c++  java
  • 类常量的定义和静态常量的定义和调用

    <?php

    //定义常量
    define('MYNUM', 100);

    if(!defined('MYNUM')){
    define('MYNUM', 200);
    }
    //echo MYNUM;

    class MyObject{
    //定义类中的常量
    const NUM = 10000;

    //定义类中的静态变量
    static $num = 100;

    protected $name;

    public function __construct($name)
    {
    $this->name = $name;
    }

    function desc(){
    echo $this->name.'--';
    // $this只能访问类中的变量和函数
    // echo $this->NUM;
    //在类的内部访问类中的常量只能使用self关键字
    echo self::NUM.'--';
    //在类的内部访问类中的静态变量只能使用self关键字
    echo self::$num;

    //非静态的函数可以直接调用静态函数方法
    self::desc2();
    }

    static function desc2(){
    // 伪变量 $this 在静态方法中不可用
    // 因为调用静态函数方法不需要创建类的实例化对象
    // $this->desc();

    echo '====调用了类的静态函数方法====';
    }

    }

    $test = new MyObject('李四');
    $test->desc();
    echo '<br><br>';
    // 如果需要在类的外部来直接访问类中的常量,那么直接使用类名
    echo '类的外部范围类中的常量:'.MyObject::NUM.'--'.MyObject::$num;
    echo '<br><br>';
    // 也可以使用该类的实例化的对象来访问类中的常量
    echo $test::NUM;
    // 从PHP5.3.0开始才能使用下面的访问方式
    echo $test::$num;
    echo '<br><br>';
    $test::$num = 200;
    echo '改变后的静态变量:'.$test::$num;

    echo '<br><br>';
    //静态变量比较特殊,它是被放置在计算机内存的静态区当中
    // 静态变量只要调用了该类就会被创建
    // 且对于一个类来说,每个静态变量只会在内存中保持一个
    $a = new MyObject('哈哈');
    echo $a::$num;
    echo '<br>';

    echo '<br><br>';
    echo '静态方法的外部访问:';
    // 使用类名+范围解析操作符+静态函数方法名
    MyObject::desc2();
    $a->desc2(); // 这样的方式来访问静态资源,不推荐
    $a::desc2();

  • 相关阅读:
    OpenResty 作者章亦春访谈实录
    linux 下C语言学习路线
    swift 集合类型
    不懂技术的人不要对懂技术的人说这很容易实现
    java学习笔记7--抽象类与抽象方法
    java学习笔记6--类的继承、Object类
    python练习题
    python的里字典和列表
    python里list列表,tuple元组内部功能介绍
    python里float和long内部功能及字符串str介绍
  • 原文地址:https://www.cnblogs.com/ZJCD/p/7206493.html
Copyright © 2011-2022 走看看