本节我们将学习PHP中的类常量。

1. 什么是类常量?

类常量是在类中定义的不可变的值。与普通变量不同,类常量的值在定义后不能被修改,且在整个脚本执行期间保持不变。

2. 为什么会有类常量?

类内,对于一些固定数值,我们可以使用类常量来存储,以提高代码可读性和健壮性。

3. 如何定义类常量?

最常见的情况是使用const关键字来修饰类内属性:

比如我们有一个Dotcpp用户类,我们可以通过const关键字来声明其nickName属性 ,但是我们不能对nickName进行修改:

<?php 
/* 1. 准备一个Dotcpp_user类 */
class Dotcpp_user
{
    // 2. 定义类常量
    public const nickName='dotcpp_user';//通过const定义类常量
       
}

/* 3. 访问类常量 */
// 方式1:通过类名直接访问(推荐)
echo Dotcpp_user::nickName; // 输出: dotcpp_user

// 方式2:创建对象后访问
$dotcpp_user = new Dotcpp_user;
echo $dotcpp_user::nickName; // 输出: dotcpp_user (PHP 7.1+)

/* 4. 尝试修改(会报错,演示错误情况) */
// 以下代码都会导致错误,类常量不能修改:

// 错误1:通过类名修改
// Dotcpp_user::nickName = 'default'; // 致命错误:无法修改常量

// 错误2:通过对象修改(这是错误的访问方式)
// $dotcpp_user->nickName = 'default'; // 致命错误:未定义的属性
?>

值得注意的是,PHP里不允许const声明函数。

4. 类常量的特点补充:

4.1 访问方式:类常量通过类名::常量名的方式访问,不需要创建对象实例

4.2 可见性:从PHP 7.1.0开始,类常量可以指定public、protected或private可见性

4.3 默认可见性:如果不指定,默认为public

4.4 命名规范:通常使用大写字母和下划线,如MAX_SIZE、DEFAULT_VALUE

总结:我们可以在类内通过const声明类常量,更好地管理固有数据。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)