zoukankan      html  css  js  c++  java
  • 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.可以通过类名称定义一个公共方法在外部访问静态成员

  • 相关阅读:
    CSS使用
    html基础
    面对对象之@classmethod、@staticmethod用法
    验证金额价格的正则表达式
    webstorm 2017.2.2 license server
    Oracle 查询当前系统时间十分钟之前的记录,时间比较SQL
    AngularJS-自定义过滤器 ng-repeat 求和
    封装http请求键值对的js函数
    获取当前的日期时间的js函数,格式为“yyyy-MM-dd hh:mm:ss”
    将金额数字转换为大写汉字的js函数
  • 原文地址:https://www.cnblogs.com/WhiteM/p/6111159.html
Copyright © 2011-2022 走看看