关于这个:
class foo {
public static function bar() {
echo 'hi';
}
}
这之间有什么区别:
foo::bar();
和此:
$obj = new foo();
$obj::bar();
还是没有区别?是正确的还是原则?哪个更好?
答案 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";
这意味着两种方式都是正确的。它取决于你使用什么。