天天看點

夜光帶你走進 傳奇語言php(56)進階篇開始

夜光序言:

人生最大的财富就是滿足,它淨化了心靈的那份純真,複蘇了原始的笑聲,诠釋了人性的那份善良和真誠,慢慢的懂得了,所有的浮華,都是瞬間炫麗的煙花,而我們真正需要的是歲月裡的那份平淡,手心裡緊握的那份溫暖,和心靈深處的那份安然,能讓旅途愉悅的不是榮華,而是心情;能讓生命燦爛的不是陽光,而是笑臉。

夜光帶你走進 傳奇語言php(56)進階篇開始

正文:

PHP類和對象之Static靜态關鍵字

靜态屬性與方法可以在不執行個體化類的情況下調用,直接使用

類名::方法名

的方式進行調用。靜态屬性不允許對象使用->操作符調用。

class Car {
    private static $speed = 10;
    
    public static function getSpeed() {
        return self::$speed;
    }
}
echo Car::getSpeed();  //調用靜态方法
           

靜态方法也可以通過變量來進行動态調用

$func = 'getSpeed';
$className = 'Car';
echo $className::$func();  //動态調用靜态方法
           

靜态方法中,$this僞變量不允許使用。可以使用self,parent,static在内部調用靜态方法與屬性。

class Car {
    private static $speed = 10;
    
    public static function getSpeed() {
        return self::$speed;
    }
    
    public static function speedUp() {
        return self::$speed+=10;
    }
}
class BigCar extends Car {
    public static function start() {
        parent::speedUp();
    }
}

BigCar::start();
echo BigCar::getSpeed();
           

任務

我也來試一試:定義一個靜态方法,實作速度累加10。

在代碼第10-12行輸入下面代碼:

public static function speedUp() {
    return self::$speed+=10;
}
           

靜态方法中,$this僞變量不允許使用。可以使用self,parent

夜光帶你走進 傳奇語言php(56)進階篇開始
夜光帶你走進 傳奇語言php(56)進階篇開始
/**
 * Created by PhpStorm.
 * User: 夜光
 * Date: 2019/7/14
 * Time: 21:33
 */
<?php
class Car {
    private static $speed = 10;

    public function getSpeed() {
        return self::$speed;
    }

    //在這裡定義一個靜态方法,實作速度累加10
    public static function speedUp(){
        return self::$speed += 10;
    }




}

$car = new Car();
Car::speedUp();  //調用靜态方法加速
echo $car->getSpeed();  //調用共有方法輸出目前的速度值
           

繼續閱讀