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

本文介绍了PHP中静态关键字static的应用,包括静态变量的特点及用途,静态方法与属性的调用方式,以及如何通过变量动态调用静态方法。同时探讨了在静态方法中不可使用$this伪变量的原因。

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(); //输出为"上海"


本节完。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值