PHP 类和对象(static静态关键字)

来源:互联网 发布:惠普win10 网络唤醒 编辑:程序博客网 时间:2024/05/18 17:26

PHP中除了常规的类和方法的使用,控制访问之外,还有静态关键字static。


静态变量可以是局部变量也可以是全局变量,当一个程序段执行完毕时,静态


变量并没有消失,它依然存在与内存中,下次再定义时还是以前的值,常用于


递归或子函数中保留以前的值,可以用来定义变量与方法。


静态属性和方法可以在不实例化类的情况下调用,直接使用  类名: :方法名  的方式


进行调用。所以伪变量$this在此处不可用


静态属性不可以由对象通过“->”操作符来访问。


用静态方式调用一个非静态方法会导致一个E_STRICT级别的错误。


例1:调用静态属性与静态方法


<?php


class Car{


    public static $name="汽车";


    public static function getName(){


        return self::$name;


    }


}


echo Car::$name; //输出为”汽车“


echo Car::getName(); //输出为”汽车“

?>



静态方法也可以通过变量来进行动态调用。如例2:


例2:

<?php


class Car{


    public static $name="汽车";


    public static function getName(){


        return self::$name;


    }


}

$fun1='Car';


$fun2='getName';


echo $fun1::$fun2(); //输出结果为"汽车"


?>



静态方法中,$this伪变量不允许使用。可以使用使用self,parent,static在内部调


用静态方法与属性。


<?php


class Car{


    public static $name="汽车";


    public static $city="上海";


    public static function getName(){


        return self::$name;


    }


    public static function getCity(){


        return self::$city;


    }


}


class aCar extends Car{


    public static function start(){


        parent::getCity();


    }


    public static function tag(){


        parent::getName();


    }


}


echo aCar::getName();//输出为"汽车"


echo aCar::getCity(); //输出为"上海"


本节完。


原创粉丝点击