哪个更好foo :: bar()VS $ foo :: bar()?

时间:2017-01-18 22:07:31

标签: php

关于这个:

class foo {
    public static function bar() {
        echo 'hi';
    }
}

这之间有什么区别:

foo::bar();

和此:

$obj = new foo();
$obj::bar();

还是没有区别?是正确的还是原则?哪个更好?

1 个答案:

答案 0 :(得分:1)

我相信它们之间没有区别,但根据我的经验,最常用的形式是Foo::bar()

您可以找到一些示例here

有静态方法示例和用法:

<?php

  class Foo {
     public static function aStaticMethod() {
      // ...
     }
  }

  Foo::aStaticMethod();
  $classname = 'Foo';
  $classname::aStaticMethod(); // As of PHP 5.3.0

?>

之后,您可以找到访问属性的示例:

print Foo::$my_static . "\n";

$foo = new Foo();
print $foo::$my_static . "\n";

这意味着两种方式都是正确的。它取决于你使用什么。