PHP基础之类常量与静态成员

类在实例化后,对象中的成员只被当前对象所有。如果希望在类中定义的成员被所有对象共享,此时可以使用类常量或静态成员来实现。

类常量

在PHP中,类内除了可以定义成员属性、成员方法外,还可以定义类常量,定义后值不变,可以被所有对象所共有。在类内使用const关键字可以定义类常量,其语法格式如下:

const 类常量名 = '常量值';

类常量的命名规则与普通常量一致,在开发中通常以大写字母表示类常量名。
访问方式:

类名::常量名称

其中::称为范围解析操作符,简称双冒号。

示例:

class Student
{
	const SCHOOL = '中山大学';    //定义常量
}
echo Student::SCHOOL;           //访问类常量

类常量也可以在类内进行访问,在类内访问时,可以用self关键字代替类名,如 “self::SCHOOL”,免除在修改类名时还要修改类中代码的麻烦
在开发中,类常量的使用不仅可以在语法上限制数据不被改变,还可以简化说明数据,方便开发人员的阅读与数据的维护

静态成员

除了类常量外,若想要类中的某些成员只保存一份,并且可以被所有实例的对象所共享时,就可以使用静态成员。在PHP中,静态成员使用static关键字修饰,它是属于类的成员,可以通过类名直接访问,不需要实例化对象

//静态成员的声明
public static 属性名;           //声明静态属性
public static 方法名(){}       //声明静态方法
//静态成员的访问
类名::静态成员

需要注意的是,静态成员是属于类的,不需要通过对象调用,所有 $this在静态方法中不可使用,当访问类中的成员时,需要使用范围解析操作符"::"。
示例:

<?php
class Student
{
    public static $msg;
    public static function show()
    {
        echo '信息:' . self::$msg;  // 类内访问静态属性
    }
    public static function test()
    {
        self::show();                // 类内调用静态方法
    }
}
Student::$msg = 'PHP的发展前景';     // 类外访问静态属性
Student::show();                     // 类外调用静态方法

可见,类的静态成员在没有实例化对象的情况下就可以使用。通常在类外使用类名访问,在类内使用self关键字进行访问

总结

1、类中定义的类常量和静态成员可以被所有对象共享。
2、在本类内调用静态成员时使用self关键字进行调用,免除在修改类名时还要修改类中代码的麻烦
3、由于静态成员是属于类的,不需要通过对象调用,所有$this在静态方法中不可用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值