常量
一般
一个常量是一个 命名 值。一旦定义,常量的值就不能被改变。
常量可以通过两种方式之一定义:作为c-常量使用 const-声明,或者作为d-常量通过调用库函数 define
。然而,这两种方法略有不同。具体来说
- c-常量的名称必须符合名称的词法语法,而 d-常量的名称可以包含任何源代码字符。
- 如果
define
能够定义给定的名称,它将返回TRUE
;否则,它将返回FALSE
。
库函数 defined
报告给定名称(作为字符串指定)是否定义为常量。库函数 constant
返回给定常量的值,其名称以字符串形式指定。
示例
const MAX_HEIGHT = 10.5; // define two (case-sensitive) c-constants
const UPPER_LIMIT = MAX_HEIGHT;
define('COEFFICIENT_1', 2.345, TRUE); // define a case-insensitive d-constant (deprecated)
define('FAILURE', FALSE, FALSE); // define a case-sensitive d-constant
上下文相关的常量
以下常量 - 有时被称为魔术常量 - 自动可用于所有脚本;它们的值不是固定的,并且不区分大小写
常量名称 | 描述 |
---|---|
__CLASS__ | string ; 当前类的名称。从特征方法内部,使用该特征的类的名称。如果当前命名空间不是默认命名空间,则命名空间名称和 \ 将按此顺序前缀。如果在所有类之外使用,则值为空字符串。 |
__COMPILER_HALT_OFFSET__ | int ; 当使用 __halt_compiler(); 结构时,此常量包含源文件中紧跟此文件中 __halt_compiler(); 标记后的字节偏移量。 |
__DIR__ | string ; 脚本的目录名称。仅对根目录追加目录分隔符。 |
__FILE__ | string ; 脚本的完整名称。 |
__FUNCTION__ | string ; 在函数内部,当前函数的名称与声明时完全相同,并带有以下前缀:如果存在命名空间,则命名空间名称后跟 "。如果在所有函数之外使用,则结果为空字符串。对于方法,没有父类前缀。(参见 __METHOD__ 和 匿名函数)。 |
__LINE__ | int ; 当前源代码行的行号。 |
__METHOD__ | string ; 在方法内部,当前方法的名称与声明时完全相同,并带有以下前缀,按顺序:如果存在命名空间,则命名空间名称后跟 \ ; 父类名称或特征名称后跟 :: 。如果在所有方法之外使用,则结果与 __FUNCTION__ 相同。 |
__NAMESPACE__ | string ; 当前命名空间的名称,与声明时完全相同。对于默认命名空间,结果为空字符串。 |
__TRAIT__ | string ; 当前特征的名称。从特征方法内部,当前特征的名称。如果在所有特征之外使用,则结果为空字符串。 |
以 __ 开头的常量名称为引擎将来使用保留。
核心预定义常量
以下常量自动可用于所有脚本;它们区分大小写,除了 NULL
、TRUE
和 FALSE
常量名称 | 描述 |
---|---|
DEFAULT_INCLUDE_PATH | string ; 如果未被 php.ini 设置 include_path 覆盖,则使用 fopen 库函数包含路径。 |
E_ALL | int ; 所有错误和警告,只要支持。 |
E_COMPILE_ERROR | int ; 编译时致命错误。这与 E_ERROR 相似,不同的是 E_COMPILE_ERROR 由脚本引擎生成。 |
E_COMPILE_WARNING | int ; 编译时警告(非致命错误)。这与 E_WARNING 相似,不同的是 E_COMPILE_WARNING 由脚本引擎生成。 |
E_CORE_ERROR | int ; PHP 初始启动时发生的致命错误。这与 E_ERROR 相似,不同的是 E_CORE_ERROR 由 PHP 的核心生成。 |
E_CORE_WARNING | int ; PHP 初始启动时发生的警告(非致命错误)。这与 E_WARNING 相似,不同的是 E_CORE_WARNING 由 PHP 的核心生成。 |
E_DEPRECATED | int ; 弃用通知。启用此选项以接收有关将来版本中将无法使用的代码的警告。 |
E_ERROR | int ; 运行时致命错误。这些表示无法恢复的错误,例如内存分配问题。脚本执行将停止。 |
E_NOTICE | int ; 运行时通知。表示脚本遇到了可能表示错误的内容,但也可能在脚本正常运行过程中发生。 |
E_PARSE | int ; 编译时解析错误。 |
E_RECOVERABLE_ERROR | int ; 可捕获致命错误。它表示可能发生了危险的错误,但没有使引擎处于不稳定状态。如果错误未被用户定义的处理程序捕获(参见库函数 set_error_handler ),应用程序将像 E_ERROR 一样中止。 |
E_STRICT | int ; 让 PHP 建议对源代码进行更改,以确保最佳的互操作性。 |
E_USER_DEPRECATED | int ; 用户生成的错误消息。这与 E_DEPRECATED 相似,不同的是 E_USER_DEPRECATED 是在 PHP 代码中使用库函数 trigger_error 生成的。 |
E_USER_ERROR | int ; 用户生成的错误消息。这与 E_ERROR 相似,不同的是 E_USER_ERROR 是在 PHP 代码中使用库函数 trigger_error 生成的。 |
E_USER_NOTICE | int ; 用户生成的警告消息。这与 E_NOTICE 相似,不同的是 E_USER_NOTICE 是在 PHP 代码中使用库函数 trigger_error 生成的。 |
E_USER_WARNING | int ; 用户生成的警告消息。这与 E_WARNING 相似,不同的是 E_USER_WARNING 是在 PHP 代码中使用库函数 trigger_error 生成的。 |
E_WARNING | int ; 运行时警告(非致命错误)。脚本执行不会停止。 |
FALSE | bool ; 不区分大小写的布尔值 FALSE 。 |
INF | float ; 无穷大 |
M_1_PI | float ; 1/pi |
M_2_PI | float ; 2/pi |
M_2_SQRTPI | float ; 2/sqrt(pi) |
M_E | float ; e |
M_EULER | float ; 欧拉常数 |
M_LN10 | float ; log_e 10 |
M_LN2 | float ; log_e 2 |
M_LNPI | float ; log_e(pi) |
M_LOG10E | float ; log_10 e |
M_LOG2E | float ; log_2 e |
M_PI | float ; Pi |
M_PI_2 | floa t; pi/2 |
M_PI_4 | float ; pi/4 |
M_SQRT1_2 | float ; 1/sqrt(2) |
M_SQRT2 | float ; sqrt(2) |
M_SQRT3 | float ; sqrt(3) |
M_SQRTPI | float ; sqrt(pi) |
NAN | float ; 非数字 |
NULL | null ; 不区分大小写的 NULL 值。 |
PHP_BINARY | string ; 脚本执行期间的 PHP 二进制路径。 |
PHP_BINDIR | string ; 二进制文件的安装位置。 |
PHP_CONFIG_FILE_PATH | string ; 解析 php.ini 值的位置 |
PHP_CONFIG_FILE_SCAN_DIR | string ; 包含多个 INI 文件的目录,所有这些文件都在启动时解析。 |
PHP_DEBUG | int ; 表示引擎是否在启用调试的情况下构建。 |
PHP_EOL | string ; 此平台的换行符。 |
PHP_EXTENSION_DIR | string ; 库函数 dl 在查找运行时扩展时要搜索的目录。 |
PHP_EXTRA_VERSION | string ; 当前 PHP 额外版本。 |
PHP_INT_MAX | int ; 整数的最大可表示值。 |
PHP_INT_MIN | int ; 整数的最小可表示值。 |
PHP_INT_SIZE | int ; 用于表示整数的字节数。 |
PHP_FLOAT_DIG | int ; 可以四舍五入到浮点数并返回而不会丢失精度的十进制位数。 |
PHP_FLOAT_EPSILON | float ; 最小的可表示正数 x ,使得 x + 1.0 != 1.0 。 |
PHP_FLOAT_MIN | float ; 最小的可表示的规范化浮点数,大于零。 |
PHP_FLOAT_MAX | float ; 最大的可表示的浮点数。 |
PHP_MAJOR_VERSION | int ; 当前 PHP 主版本 |
PHP_MANDIR | string ; 手册页的安装位置。 |
PHP_MAXPATHLEN | int ; 此版本支持的完全限定文件名最大长度。 |
PHP_MINOR_VERSION | int ; 当前 PHP 次版本。 |
PHP_OS | string ; 当前操作系统。 |
PHP_OS_FAMILY | string ; PHP 为其构建的操作系统系列。可能是 "Windows"、"BSD"、"Darwin"、"Solaris"、"Linux" 或 "Unknown" 中的任何一个。 |
PHP_PREFIX | string ; 配置时 “–prefix” 设置的值。 |
PHP_RELEASE_VERSION | int ; 当前 PHP 发行版本。 |
PHP_ROUND_HALF_DOWN | int ; 将一半四舍五入。 |
PHP_ROUND_HALF_EVEN | int ; 将一半四舍五入到偶数。 |
PHP_ROUND_HALF_ODD | int ; 将一半四舍五入到奇数。 |
PHP_ROUND_HALF_UP | int ; 将一半五入。 |
PHP_SAPI | string ; 此版本的服务器 API。 |
PHP_SHLIB_SUFFIX | string ; 构建平台的共享库后缀。 |
PHP_SYSCONFDIR | string ; PHP 系统配置目录。 |
PHP_VERSION | string ; 当前 PHP 版本,格式为“主版本.次版本.修订版[附加]”。 |
PHP_VERSION_ID | int ; 当前 PHP 版本。 |
PHP_ZTS | int ; 指示编译器是否启用线程安全。 |
STDIN | resource ; 映射到标准输入 (php://stdin ) 的文件资源。 |
STDOUT | resource ; 映射到标准输出 (php://stdout ) 的文件资源。 |
STDERR | resource ; 映射到标准错误 (php://stderr ) 的文件资源。 |
TRUE | bool ; 不区分大小写的布尔值 TRUE 。 |
E_*
家族的成员的值是 2 的幂,因此可以使用按位运算符将它们有意义地组合。