PHP类的实例(对象)上使用::调用静态方法

更新时间:2023-09-17 11:27
class Test
{
    public static function hello()
    {
        echo 123;
    }
}

$t = new Test();

$t::hello();  //输出123
在PHP中,可以在类的实例上调用静态方法。当你写 $t::hello();,你实际上是在调用类 Test 的静态方法 hello。
这在PHP中可能,因为 $t 是 Test 类的实例,所以PHP知道 ::hello() 这个静态方法应该找到哪个类去调用。
注意,尽管在这里工作,但是通常我们不建议在类的实例上使用静态方法,因为静态方法主要是为了不需要实例化对象即可调用的情况。对于需要使用类实例的属性或方法的情况,应该使用非静态方法。
在大多数情况下,我们都是这样使用静态方法的
Test::hello();