一尘不染

PHP静态函数

php

我对php中的静态功能有疑问。

假设我有一堂课

class test {
    public function sayHi() {
        echo 'hi';
    }
}

如果我这样做的test::sayHi();话,没有问题。

class test {
    public static function sayHi() {
        echo 'hi';
    }
}

test::sayHi(); 也可以。

头等舱和二等舱有什么区别?

静态函数有什么特别之处?


阅读 368

收藏
2020-05-29

共1个答案

一尘不染

在第一个类中,sayHi()实际上是一个实例方法,您将其作为静态方法进行调用,但由于sayHi()从未引用,所以您将其取消$this

静态函数与该类相关联,而不是该类的实例。因此,$this在静态上下文中不可用($this未指向任何对象)。

2020-05-29