2017-01-18 2 views
0

foo::bar(); 

と、この:

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

かの違い

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

この違いは何ですか?権利と原則の両方がありますか?どちらが良いですか?

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

それは両方の方法が正しいことを意味します。何を使うかはあなた次第です。

関連する問題