php const常量修饰符使用方法_PHP教程
在PHP中定义常量是通过define()函数来完成的,但在类中定义常量不能使用define(),而需要使用const修饰符。类中的常量使用const定义后,其访问方式和静态成员类似,都是通过类名或在成员方法中使用self访问,但在PHP 5.3.0之后也可以使用对象来访问。被const定义的常量不能重新赋值,如果在程序中试图改变它的值将会出现错误。
代码如下 | 复制代码 |
class MyClass { const CONSTANT = 'CONSTANT value' ; //使用const声明一个常量,并直接赋上初使值 function showConstant() { echo self ::CONSTANT ." } } echo MyClass:: CONSTANT . " $class = new MyClass(); $class->showConstant(); echo $class ::CONSTANT; // PHP 5.3.0之后 ?> |
关注细节:使用const定义的常量名称前不需要使用“$“符号,且常量名称通常都是大写的。
试图为const定义的常量赋值,将会出现错误。
代码如下 | 复制代码 |
class MyClass { const CONSTANT = 'CONSTANT value' ; function setCONSTANT(){ self ::CONSTANT = 'news CONSTANT' ;//程序运行结果将会出错。 } } echo MyClass:: CONSTANT ; ?> |
程序运行结果将会出错。
使用const修饰的常量更其它的常量 有点不同的地方就是:常量名前不要使用”$”,切记!当然这个常量值也是不能修改的,一旦定义就不能程序的任何地方进行“人为”的修改。这跟使用 define定义是一样,还有就是使用const来定义当然也遵守其它常量的命名规则
扩展阅读:
常量前面没有美元符号($);
常量只能用 define() 函数定义,而不能通过赋值语句;
常量可以不用理会变量范围的规则而在任何地方定义和访问;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量;
常量只能包含标量数据(boolean,integer,float 和 string),不要定义 resource常量.
可以用函数 constant() 来读取常量的值.get_defined_constants()可以获得所有已定义的常量列表.
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 “CONSTANT”),此时将发出一个 E_NOTICE 级的错误.
PHP 的“魔术常量”.
名称 |
说明 |
__LINE__ |
文件中的当前行号。 |
__FILE__ |
文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。 |
__FUNCTION__ |
函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。 |
__CLASS__ |
类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。 |
__METHOD__ |
类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。 |
上一篇: 比较Apache与Nginx各自的优缺点
推荐阅读
-
PHP 5.3中的命名空间使用方法浅述_PHP教程
-
php中const与define的使用区别 详解_PHP教程
-
PHP教程之PHP中shell脚本的使用方法
-
php中JSON的使用方法,phpJSON使用方法_PHP教程
-
ThinkPHP模板替换与系统常量及应用实例教程_PHP
-
php类中的$this,static,final,const,self这几个关键字使用方法_php实例
-
PHP学习笔记(三):数据类型转换与常量介绍,学习笔记常量_PHP教程
-
在php中定义常量时,const与define的区别
-
ThinkPHP中limit()使用方法详解,thinkphplimit_PHP教程
-
PHP任务学习3:静态变量与自定义常量_PHP教程