php类常量的使用详解

5年以前  |  阅读数:824 次  |  编程语言:PHP 

可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。

常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。

接口(interface)中也可以定义常量。更多示例见文档中的接口部分。

自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如 self,parent 或 static)。

Example #1 定义和使用一个类常量


    <?php
    class MyClass
    {
      const constant = 'constant value';
      function showConstant() {
        echo self::constant . "\n";
      }
    }

    echo MyClass::constant . "\n";

    $classname = "MyClass";
    echo $classname::constant . "\n"; // 自 5.3.0 起

    $class = new MyClass();
    $class->showConstant();

    echo $class::constant."\n"; // 自 PHP 5.3.0 起
    ?>

Example #2 静态数据示例


    <?php
    class foo {
      // 自 PHP 5.3.0 起
      const bar = <<<'EOT'
    bar
    EOT;
    }
    ?>

和 heredoc 不同,nowdoc 可以用在任何静态数据中。

Note:

Nowdoc 支持是在 PHP 5.3.0 新增的。

更多可以参考这篇文章:http://php.net/manual/zh/language.oop5.constants.php#language.oop5.constants

注意:不像其他的面向对象编程语言,在php中,类不能对某个属性变量使用final修饰符。
如果要声明某个属性为常量,可以使用const关键字,并且无需使用美元符号作为变量名前缀,也无需使用访问权限修饰符。常量意味着虽然可以访问该变量,但不能修改该变量的值。例如下边的代码声明了常量属性con_var:


    <?php
    class Foo{
     const con_var="常量属性的值不能被修改<br />";
     public function method_a(){
     echo (self::con_var);
     }
    }
    echo(Foo::con_var);
    $myFoo=new Foo();
    echo ($myFoo->method_a());
    ?>

常量属性不能使用对象访问,仅能使用类访问,在类本体内,可以使用"self::常量名",在类本体外可以使用"类名::常量名"。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例