在PHP中,使用 - > dereferencer调用静态类函数是一个问题

Ton*_*Gee 6 php oop static-methods class dereference

我使用的是PHP 5.2

我有以下代码:

class MyClass {
    public function __construct() {}

    public static function stuff() {
        echo 'This is static! <br />';
    }

}

$myClass = new MyClass();

MyClass::stuff(); // Reference by class.

$myClass->stuff(); // Reference by instance of class.
Run Code Online (Sandbox Code Playgroud)

这两种情况下的输出都是输出:

这是静态的!

这是静态的!

使用第二种参考方式与第一种方式有问题吗?

由于我不允许具有与上述静态功能相同的非静态功能,因此不会出现问题.我希望函数是静态的,因为在使用静态函数时也会提高速度.

我是否遗漏了任何内容,或者这是唯一的问题,关于 - > dereference语法如何表明这是一个静态函数的语义?

Mat*_*hen 6

文件明确地说,这没关系:

声明为static的属性无法使用实例化的类对象访问(尽管静态方法可以).

但是,它使用起来更清晰::.我还质疑静态方法明显更快的想法,特别是在没有使用实例字段时.在开始更改应用程序的语义以提高性能之前,应该进行性能分析.