首页 > php学习 > php的魔术常量和内核预定义常量
2019
05-06

php的魔术常量和内核预定义常量

有八个魔术常量它们的值随着它们在代码中的位置改变而改变,称之为魔法常量,魔法常量不区分大小写:

__LINE__:文件中的当前行号。

__FILE__:文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名

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

__FUNCTION__:当前函数名称,在哪个函数中使用,就返回哪个函数名

__CLASS__:当前的类名 在哪个类中使用,就返回哪个类的类名

__TRAIT__:Trait的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。

__METHOD__:类的方法名,返回该方法被定义时的名字(区分大小写)。

__NAMESPACE__:当前命名空间的名称(区分大小写),此常量是在编译时定义的

PHP提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才能使用

内核预定义常量

这些常量在 PHP 的内核中定义,它包含PHP、Zend引擎和SAPI模块:

PHP_VERSION(string)PHP版本,格式为major.minor.release[extra](主版本号.次版本号.发布版本号[额外版本号])

PHP_MAJOR_VERSION(integer)php主版本号

PHP_MINOR_VERSION(integer)php次版本号

PHP_RELEASE_VERSION(integer)php发布版本号

PHP_EXTRA_VERSION(string)php额外版本号

PHP_VERSION_ID(integer)作为整数的PHP版本,用于版本比较(如"7.1.6"版本为70106)

PHP_ZTS(integer)是否是线程安全版本

PHP_DEBUG(integer)是否启动debug

PHP_MAXPATHLEN(integer)支持文件名(包括路径)的最大长度

PHP_OS(string)操作系统类型,显示UNIX或WINNT等

PHP_OS_FAMILY(string)操作系统系列(windows、bsd、darwin、solaris、linux或unknown),从php 7.2.0开始提供

PHP_SAPI(string)web服务器和PHP之间的api接口类型,与php_sapi_name()返回值相同

PHP_EOL(string)当前系统的行结束符

PHP_INT_MAX(integer)支持的最大整数,32位系统为2147483647,64位系统为9223372036854775807

PHP_INT_MIN(integer)支持的最小整数,32位系统为-2147483648,64位系统为-9223372036854775808

PHP_INT_SIZE(integer)整数的大小(以字节为单位,整型的位数)

PHP_FLOAT_DIG(integer)可以四舍五入并且不会损失精度的小数位数,从php 7.2.0开始提供

PHP_FLOAT_EPSILON(float)可表示的x+1.0不等于1.0的最小正数x,从php 7.2.0开始提供

PHP_FLOAT_MIN(float)最小浮点数,从php 7.2.0开始提供

PHP_FLOAT_MAX(float)最大浮点数,从php 7.2.0开始提供

DEFAULT_INCLUDE_PATH(string)默认包含文件路径

PEAR_INSTALL_DIR(string)pear安装目录

PEAR_EXTENSION_DIR(string)pear扩展目录

PHP_EXTENSION_DIR(string)php扩展目录

PHP_PREFIX(string)安装php执行configure时,“--prefix”选项设置的值

PHP_BINDIR(string)二进制文件安装的目录

PHP_BINARY(string)脚本执行期间二进制文件的路径

PHP_MANDIR(string)php手册页的安装位置

PHP_LIBDIR(string)php库文件目录

PHP_DATADIR(string)php通用数据文件目录

PHP_SYSCONFDIR(string)php在单个机器上使用的只读数据的安装目录

PHP_LOCALSTATEDIR(string)php单机使用的可写数据的安装目录

PHP_CONFIG_FILE_PATH(string)php.ini的搜索路径

PHP_CONFIG_FILE_SCAN_DIR(string)扩展的ini配置文件的目录

PHP_SHLIB_SUFFIX(string)共享库的后缀名,如so(Unix)、ddl(windows)

PHP_FD_SETSIZE(string)select系统调用的文件描述符的最大数量,从php 7.1.0开始提供

E_ERROR(integer)致命的运行时错误的错误级别

E_WARNING(integer)运行时警告(非致命错误)的错误级别

E_PARSE(integer)编译时语法解析错误的错误级别

E_NOTICE(integer)运行时通知的错误级别

E_CORE_ERROR(integer)PHP初始化启动过程中发生的致命错误的错误级别,类似E_ERROR但是是由PHP引擎核心产生的

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

E_COMPILE_ERROR(integer)致命编译时错误的错误级别, 类似E_ERROR但是是由Zend脚本引擎产生的

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

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

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

E_USER_NOTICE(integer)用户产生的通知信息的错误级别,类似E_WARNING但是是由用户自己在代码中使用PHP函数trigger_error()来产生的

E_RECOVERABLE_ERROR(integer)可被捕捉的致命错误的错误级别。它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。如果该错误没有被用户自定义句柄捕获将成为一个E_ERROR从而脚本会终止运行

E_DEPRECATED(integer)运行时通知的错误级别,启用后将会对在未来版本中可能无法正常工作的代码给出警告

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

E_STRICT(integer)PHP对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性

E_ALL(integer)E_STRICT除外的所有错误和警告信息的错误级别

扩展库中定义的常用常量:

DIRECTORY_SEPARATOR(string):\或/,代表操作系统使用的目录分隔符

PATH_SEPARATOR(string):当前系统的分隔符,Windows中为分号,其他系统中为冒号

M_PI(float):圆周率π,3.141592653

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。