【问题标题】:Which of this two has a better performance in PHP and why?这两者中哪一个在 PHP 中有更好的性能,为什么?
【发布时间】: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 警告。将来可能会删除对静态调用非静态方法的支持。

标签: php class static


【解决方案1】:

了解什么更好的最好方法是检查一下。

第一个静态方法只不过是命名空间的全局函数。
什么时候应该使用静态方法?:

当方法没有副作用时。

主要的冒险是:

此方法仍然以相同的方式工作
您可以在不创建对象的情况下使用它

【讨论】:

    猜你喜欢
    • 2014-01-05
    • 2010-11-16
    • 1970-01-01
    • 2010-09-11
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多