静态方法

声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。

为了兼容 PHP 4,如果没有指定访问过程,属性和方法默认为公有。

由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。

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

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

就像其它所有的 PHP 静态变量一样,静态属性只能被初始化为文字或常量,不能使用表达式。所以可以把静态属性初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个对象。

自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 selfparent 或 static

<?php
    class Person
{   
    public static function a(){
        echo "star";       
    }
    public  function b(){
        echo "shine";
    }
}
    Person::a();     //调用静态方法,可以直接调用
    Person::b();     //调用普通方法,理论上是不能调用成功的,但是这里能调用成功,可能是因为php检测不太完善,或者是???  ,反正理论上是不能这么写的

?>

 

 

 

posted @ 2020-01-11 09:49  初雨诗清风  阅读(1126)  评论(0编辑  收藏  举报