|  在技术加营销的道路上越走越远
温馨提示
我是弹窗内容
当前位置:首页 > PHP经验积累 > PHP中预定义的常量有哪些?标准常量,错误报告常量,魔术常量汇总
PHP中预定义的常量有哪些?标准常量,错误报告常量,魔术常量汇总

PHP中预定义的常量有哪些?标准常量,错误报告常量,魔术常量汇总

日期:2022-01-19 浏览量:1352 原创作者:湖八爷
PHP常量是PHP中一个非常基础的知识点。常量和变量有着本质上的区别,常量被定义后,默认是全局的,可以在整个运行脚本的任何地方直接使用。
那么PHP内核预定义的常量有哪些呢?今天我们就用这篇文章汇总一下PHP中预定义的常量。

一,PHP内核标准常量汇总。


PHP_VERSION

当前PHP版本的字符串。格式为“主版本号.子版本号.阶段版本号[扩展信息]”。

var_dump(PHP_VERSION); 会得到一个字符串,如:7.1.9,这个就是你当前所使用的PHP的版本号。


PHP_MAJOR_VERSION

当前PHP版本的主版本号,整数形式,如:"5.2.7-extra"版本是 int(5) 


PHP_MINOR_VERSION

当前PHP版本的子版本号,整数形式,如:"5.2.7-extra"版本是 int(2)


PHP_RELEASE_VERSION

当前PHP版本的阶段版本号,整数形式,如:"5.2.7-extra"版本是 int(7) 


PHP_EXTRA_VERSION

当前PHP版本的"扩展信息"信息,字符串形式,如:"5.2.7-extra"版本是 '-extra' 


PHP_VERSION_ID

当前PHP版本的整数,整数形式,如:"5.2.7-extra"版本是 int(50207)


PHP_INT_SIZE

当前PHP版本的整数大小,整数形式,如:"7.1.9"版本中var_dump(PHP_INT_SIZE); 会得到 int(8)


PHP_MAXPATHLEN

当前PHP版本支持的最大文件名(包括路径)的长度,整数形式。

PHP7中使用var_dump(PHP_MAXPATHLEN); 会得到 int(2048)


PHP_INT_MAX

当前PHP版本支持的最大整型数字,整数形式。

在32位操作系统中通常为 int(2147483647),64位操作系统中为 int(9223372036854775807)


PHP_INT_MIN

当前PHP版本支持的最小整型数字,整数形式。

在32位系统中通常为 int(-2147483648),64系统中为 int(-9223372036854775808)


PHP_OS

当前运行PHP的操作系统,字符串形式。

在Windows环境下使用var_dump(PHP_OS); 会得到 string(5) "WINNT"


PHP_OS_FAMILY

当前运行PHP操作系统所属家族,字符串形式。

'Windows'、 'BSD'、 'Darwin'、 'Solaris'、 'Linux' 或 'Unknown' 中的一个。 从 PHP 7.2.0 起可用。


PHP_SAPI

当前运行PHP的服务器接口类型,字符串形式。常用来判断是在命令行执行还是浏览器执行。

命令行中使用var_dump(PHP_SAPI); 会得到 string(3) "cli",浏览器(nginx+fastcgi)环境中使用var_dump(PHP_SAPI); 会得到 string(8) "cgi-fcgi",浏览器(apache)环境中得到的是apache2handler


PHP_EOL

当前平台对于换行符的定义,字符串形式。

在Windows平台中表示“rn”,在Unix和Linux平台中表示“n”,在Mac平台中表示“r”


PHP_FLOAT_DIG (int)

可以返回四舍五入为浮点数后不会造成精度损失的小数位数。 从 PHP 7.2.0 起可用。


PHP_FLOAT_EPSILON (float)

最小的可表示正数 x,使 x + 1.0 != 1.0。 从 PHP 7.2.0 起可用。


PHP_FLOAT_MIN (float)

最小可表示的正浮点数。 如果你需要最小的可表示负浮点数,可以使用 - PHP_FLOAT_MAX。 从 PHP 7.2.0 起可用。


PHP_FLOAT_MAX (float)

最大的可表示浮点数。从 PHP 7.2.0 起可用。


PHP_BINARY

脚本执行期间的PHP的路径,字符串形式。

Windows环境下使用var_dump(PHP_BINARY); 会得到 string(63) "D:softwarephpstudy_proExtensionsphpphp7.1.9ntsphp-cgi.exe",安装路径不同得到的结果不同


PHP_SHLIB_SUFFIX (string)

构建平台的共享库后缀,例如 ”so“(大多数 Unix) 或 ”dll“(Windows)


PHP_FD_SETSIZE

系统调用的文件描述符的最大数目,整数形式。从PHP 7.1.0起可用。


DIRECTORY_SEPARATOR

当前运行PHP操作系统的目录分隔符,字符串形式。

在Windows操作系统中,斜杠(/)和反斜杠()都可以作为目录分隔符,但是在Linux操作系统上只允许使用斜杠(/)做为目录分隔符,这就导致了一个问题,比如你在写代码时用的是Windows操作系统,但服务器用的是Linux操作系统,那就有可能出现本地测试没问题,但是上传到服务器运行的时候就会报错的现象。

所以PHP为了解决这个问题,就预定义DIRECTORY_SEPARATOR这个目录分隔符常量,和PHP_EOL常量类似,你不用在意运行的平台,只要在需要用到分隔符的时候采用DIRECTORY_SEPARATOR常量代替即可。




二,PHP内核错误报告常量汇总。


E_ERROR (int)

致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行。


E_WARNING (int)

运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。


E_PARSE (int)

编译时语法解析错误。解析错误仅仅由分析器产生。


E_NOTICE (int)

运行时通知。表示脚本遇到可能会表现为错误的情况,但是在可以正常运行的脚本里面也可能会有类似的通知。


E_CORE_ERROR (int)

在 PHP 初始化启动过程中发生的致命错误。该错误类似 E_ERROR,但是是由 PHP 引擎核心产生的。


E_CORE_WARNING (int)

PHP 初始化启动过程中发生的警告 (非致命错误) 。类似 E_WARNING,但是是由 PHP 引擎核心产生的。


E_COMPILE_ERROR (int)

致命编译时错误。类似 E_ERROR,但是是由 Zend 脚本引擎产生的。


E_COMPILE_WARNING (int)

编译时警告 (非致命错误)。类似 E_WARNING,但是是由 Zend 脚本引擎产生的。


E_USER_ERROR (int)

用户产生的错误信息。类似 E_ERROR,但是是由用户自己在代码中使用 PHP 函数 trigger_error()来产生的。


E_USER_WARNING (int)

用户产生的警告信息。类似 E_WARNING,但是是由用户自己在代码中使用 PHP 函数 trigger_error()来产生的。


E_USER_NOTICE (int)

用户产生的通知信息。类似 E_NOTICE,但是是由用户自己在代码中使用 PHP 函数 trigger_error()来产生的。


E_STRICT (int)

启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。


E_RECOVERABLE_ERROR (int)

可被捕捉的致命错误。它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。 


E_DEPRECATED (int)

运行时通知。启用后将会对在未来版本中可能无法正常工作的代码给出警告。


E_USER_DEPRECATED (int)

用户产生的警告信息。 类似 E_DEPRECATED, 但是是由用户自己在代码中使用PHP函数 trigger_error()来产生的。


E_ALL (int)

PHP 5.4.0 之前为 E_STRICT 除外的所有错误和警告信息。




三,PHP内核魔术常量汇总。

PHP内核预定义了九个魔术常量,魔术常量和标准常量的区别在于它们的值会随着它们在代码中的位置而改变,如:__LINE__这个魔术常量的值就依赖于它在脚本中所处的行来决定的。

魔术常量属于特殊常量,所以不区分大小写。


__LINE__

文件中的当前行号,整数形式。


__FILE__

文件的完整路径和文件名,字符串形式。如果用在被包含文件中,则返回被包含的文件名。


__DIR__

文件所在的目录,字符串形式。

如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。


__FUNCTION__

当前函数的名称,字符串形式。匿名函数则为 {closure}。


__CLASS__

当前类的名称,字符串形式。

类名包括其被声明的作用域(例如 FooBar)。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。


__TRAIT__

Trait 的名字,字符串形式。Trait 名包括其被声明的作用域(例如 FooBar)。


__METHOD__

类的方法名,字符串形式。


__NAMESPACE__

当前命名空间的名称,字符串形式。


ClassName::class

完整的类名,字符串形式。