夜光序言:
人生最大的财富就是满足,它净化了心灵的那份纯真,复苏了原始的笑声,诠释了人性的那份善良和真诚,慢慢的懂得了,所有的浮华,都是瞬间炫丽的烟花,而我们真正需要的是岁月里的那份平淡,手心里紧握的那份温暖,和心灵深处的那份安然,能让旅途愉悦的不是荣华,而是心情;能让生命灿烂的不是阳光,而是笑脸。
正文:
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
/**
* 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(); //调用共有方法输出当前的速度值