·PHP 中的常量是指一旦定义后将不能被改变的标识符。
·常量可以用const和define()来定义。
PHP常量的特性
- 不变性: 常量一旦定义,其值不能改变。
- 全局作用域: 常量在定义后,可以在整个脚本的任何地方使用,无需使用 global 关键字。
- 数据类型: 常量的值可以是标量数据类型(如布尔值、整数、浮点数、字符串)或数组(PHP 7 及以上版本)。
- 区分大小写: 常量名称默认是区分大小写的。如果需要定义大小写不敏感的常量,可以在 define() 函数的第三个参数设置为 true。
· 一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
<?php// 区分大小写的常量名
define("GOOD", "欢迎来到我的世界");
echo GOOD; // 输出 "欢迎来到我的世界"echo '<br>';
echo good; // 区分大小写,会报红
?>
· 但是只需要在后方加上true,就不会区分大小写, PHP 7.3.0 开始,定义不区分大小写的常量已被弃用。
<?php
// 区分大小写的常量名
define("GOOD", "欢迎来到我的世界",true);echo good; // 输出 "欢迎来到我的世界"
echo '<br>';
?>
· 不能使用$符号,否则会获取不到常量
<?php
$GOOD = "变量";
define("GOOD", "欢迎来到我的世界",);echo $GOOD; //输出:变量 直接使用常量不能加$符号,加了$符号就等于变成了变量了
echo '<br>';
?>
· 常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
<?phpdefine("GOOD", "欢迎来到我的世界");function Test() {echo GOOD;
}Test(); // 输出: 欢迎来到我的世界
?>
结果图:
使用 const 关键字
<?php
const table = "我来自宇宙";
echo table; //输出: 我来自宇宙
?>
常量也可以是数组,需要时也是能直接获取的
<?phpdefine("message",["我是超人","我是李白","我是无极"
]);echo message[2]; // 输出 "我是无极"
?>
<?phpconst message = ["我是超人","我是李白","我是无极"];echo message[1]; // 输出 "我是李白"
?>
在PHP中,define() 和 const 都用于声明常量,但在使用和定义方式上有一些区别:
一、定义方式:
define(): 这是一个动态函数,允许你在运行时给常量赋值。例如:define('MY_CONSTANT', 'Hello');
const: 是静态声明的,一旦在文件中声明,就不能改变其值。例如:const MY_CONST = 'Hello';
- 可变性:
define() 的常量可以改变(虽然这不是推荐的做法),但如果是预定义的 const 则不允许修改。
const 的安全性更高,因为它们在编译时就确定了值。
三、使用场景:
define() 更适合那些在程序运行过程中可能需要改变的值,如配置信息。
const 更适合那些在整个脚本生命周期内不变的重要常量,比如数学常数 PI 或 Pi 数字表示。
四、错误处理:
如果尝试修改已定义为 const 的值,会引发错误。
define() 如果尝试赋予不存在的变量名,会在运行时给出提示。