• php笔记(二)PHP类和对象之Static静态关键字


     

    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。

    <?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();  //调用共有方法输出当前的速

     总结一下:

    1.静态属性用于保存类的公有数据;

    2.静态方法里面只能访问静态属性;

    3.静态成员不需要实例化对象就可以访问;

    4.类的内部可以通过self和static关键字访问自身静态成员

    5.可以通过parent关键字访问父类的静态成员

    6.可以通过类名称定义一个公共方法在外部访问静态成员

  • 相关阅读:
    go语言学习笔记四(函数、包和错误处理)
    objection内存漫游实战
    脱壳工具FRIDA-DEXDump
    jsdom 用法技巧
    关于adb安装指定版本
    ob混淆
    js原型链hook
    js逆向核心:扣代码2
    ssl_logger捕获得物app双向验证数据
    js逆向核心:扣代码
  • 原文地址:https://www.cnblogs.com/WhiteM/p/6111159.html
Copyright © 2020-2023  润新知