在PHP中定义常量是通过define()函数来完成的,但在类中定义常量不能使用define(),而需要使用const修饰符。类中的常量使用const定义后,其访问方式和静态成员类似,都是通过类名或在成员方法中使用self访问,但在PHP 5.3.0之后也可以使用对象来访问。被const定义的常量不能重新赋值,如果在程序中试图改变它的值将会出现错误。


<?php

 class MyClass {

 const CONSTANT = 'CONSTANT value' ; //使用const声明一个常量,并直接赋上初使值

function showConstant() {               

 echo  self ::CONSTANT ."<br>" ;//使用self访问常量,注意常量前不要加“$”

}

 }

 echo MyClass:: CONSTANT . "<br>" ; //在类外部使用类名称访问常量,也不要加”$”

 $class = new MyClass();                     

 $class->showConstant();                      

 echo $class ::CONSTANT;  // PHP 5.3.0之后


?>


关注细节:使用const定义的常量名称前不需要使用“$“符号,且常量名称通常都是大写的。

 

试图为const定义的常量赋值,将会出现错误。

 

<?php


     class MyClass {

          const CONSTANT = 'CONSTANT value' ;  

          function setCONSTANT(){


               self ::CONSTANT  = 'news CONSTANT' ;//程序运行结果将会出错。

}

     }

     echo MyClass:: CONSTANT ;          

?>


程序运行结果将会出错。