【发布时间】:2017-05-25 10:24:16
【问题描述】:
我在一个类中定义了一个静态方法如下:
class SomeEpicClass {
public static function iDoCrazyThings($param)
{
//All The Matrix computations occurring here
}
}
现在,我有两种方法可以调用此方法:
案例 1
$instance = new SomeEpicClass();
$results1 = $instance->iDoCrazyThings(3.14159265);
$results2 = $instance->iDoCrazyThings(9.8);
案例 2
$results1 = SomeEpicClass::iDoCrazyThings(3.14159265);
$results2 = SomeEpicClass::iDoCrazyThings(9.8);
请问这些案例中哪一个的性能更好,为什么?
【问题讨论】:
-
测试一下。自己计时。
-
如果方法是静态的,则静态调用它。至于性能,这将取决于您对其进行的调用次数。捏毫秒是没有意义的
-
把这个问题放在这里:- codereview.stackexchange.com
-
CASE 2,不能在 PHP7 中使用的静态方法。在 PHP 7 中,不推荐静态调用非静态方法,并且会生成 E_DEPRECATED 警告。将来可能会删除对静态调用非静态方法的支持。