本节我们将学习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声明类常量,更好地管理固有数据。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程