2017-01-18 211 views
0

关于本:

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

这是什么区别:和

foo::bar(); 

这样的:

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

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

+0

很确定他们是一样的东西 – bassxzero

回答

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"; 

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

相关问题