0

重複の可能性:
「::」を使用して非静的メソッドを呼び出す
PHP の静的メソッドと非静的メソッドの違いはありますか?

$this を使用してオブジェクト コンテキスト内の何かにアクセスしようとしない場合、:: を使用して非静的メソッドの呼び出しを許可する理由は何ですか? それは下位互換性の問題ですか、それとも特定の理由によるものですか? :: を使用して非静的メソッドにアクセスすることを避けることに慣れる必要がありますか?

class Foo{    
public function Bar(){
    echo "this works just fine"; 
    }
}

Foo::Bar();
4

1 に答える 1

-1

誰かがこれを行う理由はいくつかあります。

  • 1 つは、関数がクラス内に存在し、結果を生成するためにインスタンス化されるクラスに依存しない可能性があり、クラスをインスタンス化できないか、インスタンス化が重いため、関数を呼び出すだけであるということです。
  • シングルトンをロードするために必要です。
  • Factoryパターンクラスで役に立ちます
  • すべての関数に命名規則を使用するだけでなく、関連する関数をグループ化したいだけの人もいるでしょう。
  • 必要に応じて抽象クラスのメソッドにアクセスできます
  • 私はもっ​​とたくさんあると確信しています

http://www.ibm.com/developerworks/library/os-php-designptrns/

于 2011-08-10T15:23:34.330 に答える