PHP 常量(Constants)
                           
天天向上
发布: 2025-03-18 23:48:07

原创
908 人浏览过

1. 什么是常量?

常量(Constant)是一个不可改变的变量,在 PHP 运行期间一旦被定义,就不能再更改或取消定义。


2. 定义常量

PHP 提供两种定义常量的方法:

  1. define()(PHP 5.3+ 推荐)
  2. const 关键字(PHP 5.3+)

2.1 使用 define()

<?php
define("SITE_NAME", "MyWebsite");  // 定义一个常量
echo SITE_NAME; // 输出: MyWebsite
?>
  • 常量名称必须是 字符串,且通常采用 全大写 命名风格。
  • 不能使用 $ 符号(常量与变量的区别)。
  • define() 可以在条件语句内定义

2.2 使用 const

<?php
const DB_NAME = "my_database";
echo DB_NAME; // 输出: my_database
?>
  • const 只能用于 全局作用域类中不能在条件语句或函数内定义
  • const 在编译时定义define() 在运行时定义

3. 检查常量是否已定义

使用 defined() 函数:

<?php
define("VERSION", "1.0.0");

if (defined("VERSION")) {
    echo "常量 VERSION 已定义";
} else {
    echo "常量 VERSION 未定义";
}
?>

4. 预定义常量

PHP 提供了一些内置常量,例如:

<?php
echo PHP_VERSION;  // 输出 PHP 版本
echo PHP_OS;       // 输出 PHP 运行的操作系统
echo __FILE__;     // 输出当前文件路径
echo __LINE__;     // 输出当前代码行号
?>

完整列表参考官方文档:PHP 预定义常量


5. 大小写敏感性

  • define() 默认大小写敏感
<?php
define("MY_CONSTANT", "Hello");
echo MY_CONSTANT; // 输出: Hello
echo my_constant; // 错误: Undefined constant
?>
  • const 总是大小写敏感,不能修改。

6. 常量数组

PHP 5.6+ 允许定义数组常量:

<?php
define("COLORS", ["Red", "Green", "Blue"]);
echo COLORS[0]; // 输出: Red
?>

7. 使用 const 在类中定义常量

<?php
class MyClass {
    const APP_VERSION = "2.0.1";
}

echo MyClass::APP_VERSION; // 输出: 2.0.1
?>
  • 类中的常量只能使用 const 关键字,不能使用 define()

8. 魔术常量

PHP 提供了一些 魔术常量,它们的值会随着上下文变化:

常量说明
__LINE__当前代码行号
__FILE__当前文件的完整路径
__DIR__当前文件所在目录
__FUNCTION__当前函数名称
__CLASS__当前类名称
__METHOD__当前方法名称
__NAMESPACE__当前命名空间

示例:

<?php
echo "当前文件:" . __FILE__;
echo "当前行号:" . __LINE__;
?>

9. 结论

常量不会被修改,适用于存储不可变的全局值(如数据库配置、API 密钥)。
define() 更灵活,但 const 更适合类
尽量使用 const 定义类常量,提高代码可读性和安全性。

更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *