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

  • 相关阅读:
    B1001 害死人不偿命的(3n+1)猜想 (15 分)
    A1050 String Subtraction (20 分)
    A1041 Be Unique (20 分)
    B1047 编程团体赛 (20 分)
    B1043 输出PATest (20 分)
    B1042 字符统计 (20 分)
    B1038 统计同成绩学生 (20 分)
    VB计算符号
    vs2008写代码的时候不能输入中文,sogou和google输入法都没有用
    如何彻底关闭Windows7自动更新
  • 原文地址:https://www.cnblogs.com/WhiteM/p/6111159.html
Copyright © 2011-2022 走看看