一、const 的概述
在 PHP 中,常量以关键字 const 声明,常量只能被赋值一次,在整个脚本中均有效。与变量不同,常量使用 define() 函数定义,一旦定义后,无法更改或取消常量定义。在很多情况下,应使用常量而非变量来保存值。
二、const 的语法
语法格式:const identifier = value;
其中 identifier 是常量名,value 是常量值,之后可以用常量名来访问该值。
三、const 的应用场景
1. 代替魔术数字
// 使用魔术数字
switch ($statusCode) {
case 0:
echo "Success";
break;
case 1:
echo "Invalid parameter";
break;
case 2:
echo "Database error";
break;
}
// 使用 const 常量
const SUCCESS = 0;
const INVALID_PARAMETER = 1;
const DATABASE_ERROR = 2;
switch ($statusCode) {
case SUCCESS:
echo "Success";
break;
case INVALID_PARAMETER:
echo "Invalid parameter";
break;
case DATABASE_ERROR:
echo "Database error";
break;
}
使用常量代替魔术数字,可以增加代码可读性,易于维护。
2. 定义不变的值
const PI = 3.14;
const MAX_CONNECTIONS = 100;
// 代码中使用常量
$radius = 5;
$area = PI * $radius * $radius;
if (MAX_CONNECTIONS > $currentConnections) {
// do something
}
定义不变的值可以降低程序出错的概率,并且增加代码可读性。
3. 简化多维数组的访问
// 使用变量进行多维数组访问
$user = ['name' => 'Tom', 'age' => 18];
$book = ['title' => 'PHP development', 'author' => 'John', 'price' => 20];
echo $user['name'] . ' wrote ' . $book['title'] . ' and its price is ' . $book['price'];
// 使用常量进行多维数组访问
const USER_NAME = 'name';
const BOOK_TITLE = 'title';
const BOOK_PRICE = 'price';
echo $user[USER_NAME] . ' wrote ' . $book[BOOK_TITLE] . ' and its price is ' . $book[BOOK_PRICE];
使用常量可以使多维数组的访问更加简洁、明了。
四、const 的注意事项
1. 常量名不需要美元符号
与变量不同,常量名不需要使用美元符号,在使用时只需要写常量名即可。例如:
const PI = 3.1415926;
echo PI;
2. 常量名必须以字母或下划线开头
常量名第一个字符必须是字母或下划线(_),不能以数字开头。
3. 常量名不区分大小写
常量名在定义时不区分大小写,在使用时也不区分大小写,这意味着常量名 MY_CONST 和 My_Const 是等价的。
4. 常量作用于全局
常量定义后作用于整个脚本,无论常量在脚本的哪个位置定义,在脚本的任何位置均可使用该常量。例如:
define("GREETING", "Hello world!");
function myTest() {
echo GREETING;
}
myTest(); // 输出 "Hello world!"
五、总结
本文主要介绍了 PHP 中 const 的概述、语法和应用场景,能够更清晰地认识 const。const 是一种比较重要的语言特性,使用好 const 可以提高代码的可读性、可维护性和可靠性。