// ## 2. 类常量
// * 类常量也类属性一样,也是属于类的, 必须用类访问,不能用对象访问
// * 类常量与类属性的区别是: 类常量不允许修改,而类属性可以修改
// * 类常量与普通常量的命名规则是一致的, 推荐使用大写字母或大写字母+下划线
// * 类常量不需要设置访问限制符,默认行为与`public`是一样的
define('SITE_NAME','PHP中文网'); //define() 函数定义一个常量。
define('COUNTRY','中国');
class demo{
const COUNTRY = '中国';
}
$a = new demo();
//echo $a->COUNTRY; // 会报错
echo demo::COUNTRY.'<br>';点击 "运行实例" 按钮查看在线实例
// 常量的关键词:const
class Demo2{
// 类常量也类属性一样,也是属于类的, 必须用类访问,不能用对象访问
const COUNTRY = '中国';
// 类常量与类属性的区别是: 类常量不允许修改,而类属性可以修改
public static $sex = '女';
public $name;
public function __construct($name){
$this->name = $name;
}
public function getInfo(){
// 类常量在类的内部,访问方式与类属性是一样的
return $this->name.'的性别是:' . self::$sex.',国籍是: ' . self::COUNTRY;
}
}
$obj = new Demo2('刘诗诗');
// // 访问类属性
echo $obj->name, '<br>';
// // // 访问类属性
echo Demo2::$sex, '<br>';
// // // 访问类常量
echo Demo2::COUNTRY, '<br>';
// // // 访问对象方法: 该方法又访问了类属性与类常量
echo $obj->getInfo();
echo '<hr>';
// // // 修改类属性
echo Demo2::$sex = '保密';
// // // 修改类常量: 报错
// // echo Demo2::COUNTRY = '美国';
// // // 可以看到类属性:$sex发生了变化
echo $obj->getInfo();
echo '<hr>';点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号