1、Static 静态声明

在前面的课件中,我们不是有多次提起过,在成员属性 和 成员函数定义时,带有修饰符的声明。
而 static (静态声明)关键字,就是修饰符中的一种。
其作用是,可以让Class在不实例化的情况下调用,
调用格式是,直接使用:类名::方法名的方式进行调用。
同时,静态属性不允许Class类使用 -> 操作符访问,而是使用self::操作符代替访问。
案例代码如下:

  1. <?php
  2. class Test {
  3. public static $HP = 100; // 血量
  4. public static $AD = 5; // 攻击力
  5. # 调用这个攻击
  6. public static function Battle() {
  7. self::$HP = self::$HP - self::$AD;
  8. echo '受到攻击剩余血量为:'.self::$HP.'<br/>';
  9. }
  10. }
  11. echo '初始血量是:'.Test::$HP.'<br/>';
  12. echo '初始攻击力是:'.Test::$AD.'<br/>';
  13. Test::Battle();
  14. Test::Battle();
  15. Test::Battle();
  16. Test::Battle();

注意:
在使用了static修饰符的成员函数中,不能使用$this->操作符调用任何,
没有使用static修饰符的成员函数或者成员属性,否则PHP将会报错,
如下列代码:

  1. <?php
  2. class Test {
  3. public $HP = 100; // 血量
  4. public static $AD = 5; // 攻击力
  5. # 调用这个攻击
  6. public static function Battle() {
  7. $this->$HP = $this->$HP - self::$AD;
  8. echo '受到攻击剩余血量为:'.$this->$HP.'<br/>';
  9. }
  10. }
  11. Test::Battle(); // 将会报错