PHP define():定义常量
常量是指在脚本执行期间不能改变值的量。PHP 语言中常量大小写是敏感的,习惯上常量的命名总是大写的这一点请在使用时注意。
可以使用 define() 来定义常量,在 PHP 5.3.0 以后也可使用const关键词在类定义之外定义常量。常量只能是标量数据(boolean、integer、float、string),也可以定义资源类型(resource)常量,但是应该尽量避免,因为这会造成不可预料的结果。
常量命名示例如下:
常量和变量有如下不同:
在PHP 7中新增了以下常量:
常量的声明(定义)
合法的常量名以字母或下划线开始,后面可跟任何字母、数字或下划线。可以使用 define() 来定义常量,在 PHP 5.3.0 以后也可使用const关键词在类定义之外定义常量。常量只能是标量数据(boolean、integer、float、string),也可以定义资源类型(resource)常量,但是应该尽量避免,因为这会造成不可预料的结果。
常量命名示例如下:
<?php //合法的常量名 define("FOO", "something"); //定义一个名为FOO的常量 define("FOO2", "something else"); define("FOO_BAR", "something more"); //非法的常量名 define("2FOO", "something"); const A = 'AAA'; //使用const 定义一个常量, 与define定义效果一样 //下面的定义是合法的, 但应该避免这样做:(自定义常量不要以__开头) //也许将来有一天PHP会定义一个__FOO__的魔术常量 //这样就会与你的代码相冲突 define("__FOO__", "something"); ?>常量的作用域是全局的,即在脚本的任何地方都可以使用已经定义的常量。
常量和变量有如下不同:
- 常量前面没有美元符号($)。
- 常量只能用 define() 和 const 定义。
- 常量的作用域是全局的。
- 常量一旦被定义就不能被重新定义或者取消定义。
- 常量的值一般是标量。
预定义常量
PHP 中有很多预定义常量,也称作魔术常量,其中很多都是由不同的扩展库定义的,只有在加载了这些库时才会出现。几个常见的 PHP 魔术常量如表所示。名称 | 说明 |
---|---|
_LINE_ | 文件中的当前行号 |
_FILE_ | 文件的完整路径和文件名。如果用在被包含文件中,就返回被包含的文件名。自 PHP 4.0.2 起,_FILE_ 总是包含一个绝对路径(如果是符号连接,就是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径 |
_DIR_ | 文件所在的目录。如果用在被包括文件中,就返回被包括的文件所在的目录。它等价于 dirname(_FILE_)。除非是根目录,否则目录中不包括末尾的斜杠(PHP 5.3.0 中新增) |
_FUNCTION_ | 函数名称(PHP 4.3.0 新增)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母 |
_CLASS_ | 类的名称(PHP 4.3.0 新增)自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母。类名包括其被声明的作用区域(例如 Foo\Bar)。注意,自 PHP 5.4 起,_CLASS_ 对 trait 也起作用。当用在 trait 方法中时,_CLASS_ 是调用 trait 方法的类的名字 |
_TRAIT_ | trait 的名字(PHP 5.4.0 新增)。自 PHP 5.4起,此常量返回 trait 被定义时的名字(区分大小写)。trait 名包括其被声明的作用区域(例如 Foo\Bar) |
_METHOD_ | 类的方法名(PHP 5.0.0 新增)。返回该方法被定义时的名字(区分大小写) |
_NAMESPACE_ | 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增) |
在PHP 7中新增了以下常量:
PHP_INT_MIN PREG_JIT_STACKLIMIT_ERROR ZLIB_NO_FLUSH ZLIB_PARTIAL_FLUSH ZLIB_SYNC_FLUSH ZLIB_FULL_FLUSH ZLIB_BLOCK ZLIB_FINISH打印以上常量:
echo PHP_INT_MIN;echo "<br/>"; echo ZLIB_NO_FLUSH;echo "<br/>"; echo ZLIB_PARTIAL_FLUSH;echo "<br/>"; echo ZLIB_SYNC_FLUSH;echo "<br/>"; echo ZLIB_FULL_FLUSH;echo "<br/>"; echo ZLIB_FINISH;echo "<br/>"; echo ZLIB_BLOCK;echo "<br/>"; echo PREG_JIT_STACKLIMIT_ERROR;echo "<br/>";输出结果是:
-9223372036854775808 0 1 2 3 5 4 6
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频