PHP中的常量

常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。常量默认为大小写敏感。按照惯例常量标识符总是大写的。

常量名和其它任何 PHP
标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。用正则表达式是这样表达的:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

注: 在这里,字母是
a-z,A-Z,以及从 127 到 255(0x7f-0xff)的 ASCII 字符。

和 superglobals
一样,常量的范围是全局的。不用管作用域就可以在脚本的任何地方访问常量。有关作用得更多信息请阅读手册中的变量范围。

语法
可以用
define() 函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义。

常量只能包含标量数据(boolean,integer,float 和
string)。

可以简单的通过指定其名字来取得常量的值,不要在常量前面加上
$ 符号。如果常量名是动态的,也可以用函数 constant() 来读取常量的值。用 get_defined_constants()
可以获得所有已定义的常量列表。

注: 常量和(全局)变量在不同的名字空间中。这意味着例如
TRUE 和 $TRUE 是不同的。

如果使用了一个未定义的常量,PHP
假定你想要的是该常量本身的名字,如同你用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE
级的错误。参见手册中为什么 $foo[bar] 是错误的(除非你事先用 define() 将 bar 定义为一个常量)。如果你只想检查是否定义了某常量,用
defined() 函数。

常量和变量不同:

常量前面没有美元符号($);

常量只能用 define()
函数定义,而不能通过赋值语句;

常量可以不用理会变量范围的规则而在任何地方定义和访问;

常量一旦定义就不能被重新定义或者取消定义;

常量的值只能是标量。

 定义常量




<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>

预定义常量

PHP
向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

有四个魔术常量根据它们使用的位置而改变。例如
__LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:

几个 PHP 的“魔术常量”

__LINE__ 文件中的长春九龙男科医院当前行号。

__FILE__ 文件的完整路径和文件名。

__FUNCTION__ 函数名称 (这是
PHP 4.3.0 新加的)。

__CLASS__ 类的名称(这是 PHP 4.3.0
新加的)。

__METHOD__ 类的方法名(这是 PHP 5.0.0
新加的)。

时间: 2024-07-31 11:43:06

PHP中的常量的相关文章

静态修饰符static,类中的常量定义修饰符

static可以用来区分成员变量.方法是属于类本身还是属于类实例化后的对象.有static修饰的成员属于类本身,没有static修饰的成员属于类的实例. 静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失static是一个修饰符,用于修饰成员(成员变量和成员函数)静态成员随着类的加载而加载.静态成员优先于对象存在.静态成员被所有对象所共享静态成员多了一个中调用方式,可以被类名直接调用.静态的优缺点优点: 静态成员多了一种调用方式.可以直接被类名调用 格式 :类名.静态成员.也

java中的常量

所谓常量,我们可以理解为是一种特殊的变量,它的值被设定后,在程序运行过程中不允许改变. 语法:final 常量名 = 值; 程序中使用常量可以提高代码的可维护性.例如,在项目开发时,我们需要指定用户的性别,此时可以定义一个常量 SEX,赋值为 "男",在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的不规范赋值导致程序出错的情况. 伙计们注意啦:常量名一般使用大写字符

0x3f3f3f3f...编程中无穷大常量的设置技巧

转自 http://aikilis.tk/ 如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值.如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美的选择,但是在更多的情况下,0x7fffffff并不是一个好的选择. 很多时候我们并不只是单纯拿无穷大来作比较,而是会运算后再做比较,例如在大部分最短路径算法中都会使用的松弛操作:if (d[u]

Android Java 与 C++ 调用过程中的常量,路径名、文件名、后缀名最大长度

/**************************************************************************** **************************************************************************** *** ***   This header was automatically generated from a Linux kernel header ***   of the same

日常总结の关于Java中的常量池技术

一.相关概念 什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量.实例变量和局部变量,分别表示三种类型的常量. Class文件中的常量池 简单讲解一下class文件的结构,开头的4个字节是class文件魔数,用来标识这是一个class文件,说白话点就是文件头,既:CA FE BA BE. 紧接着4个字节是java的版本号,这里的版本号是34,因为笔者是用jdk8编译的,版本号的高低和jdk版本的高低相对应,高版本可以兼容低版本,但低版本无法执

04 Tensorflow的中的常量、变量和数据类型

打开Python Shell,先输入import tensorflow as tf,然后可以执行以下命令. Tensorflow中的常量创建方法: hello = tf.constant('Hello,world!', dtype=tf.string) 其中,'Hello,world!'是常量初始值:tf.string是常量类型,可以省略.常量和变量都可以去构建Tensorflow中的图. Tensorflow中变量的创建方法: a = tf.Variable(10, dtype=tf.int3

PHP中的常量默認是全局變量

define("LEO","歡迎來到PHP世界!"); function show(){ echo LEO; } show(); PHP中的常量默認是全局變量,可以在任何地方調用 define(name,value,true) 這個函數接收3個參數.最好一個參數表示是否區分大小寫(true不區分,false區分)

php--在类中声明常量的关键字

Final.static.const.instanceod Final :final关键字可以加在类或者类中方法之前,但是不能使用final标识成员属性. 作用: 使用final标识的类,不能被继承. 在类中使用final标识的成员方法,在子类中不能覆盖. const:const关键字是在类中定义常量,而define()函数也是定义常量,但它是在类外定义常量. 调用方式和静态成员是一样的,都是通过类名或者在成员方法中使用self关键字进行访问,但是不建议使用对象引用进行访问. instanceo

项目中的常量是放在接口里还是放在类里呢?

接口只用于定义类型 ??当类实现接口时,接口就充当可以引用这个类的实例的类型(type).因此,类实现了借口,就表明客户端可以对这个类的实例实施某些动作.为了任何其他目的而定义接口是不恰当的. ??有一种接口被称为常量接口(constant interface),亚布妈祖上面的条件.这种接口没有包含任何方法,它只包含静态的final域,每个域都导出一个常量.使这些常量的类实现这个借口,以避免类名来修饰常量名. // Constant interface antipattern - do not

struts中的常量,action配置中的默认值

1.struts中Action的开发方式 继承ActionSupport类,这种方法实现的Action可以进行数据校验: 实现Action接口: 不继承任何类,不实现任何接口: 是否继承类或实现结构,struts都会进行默认拦截器的启动,拦截器的启动和Action没有关系. 2.struts中的通配符 在对action进行配置时,会有重复的情况 <action name="login" class="com.juaner.action.UserAction"