PHP const

发布时间:2023-05-20

一、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 可以提高代码的可读性、可维护性和可靠性。