static::を使うことで静的メソッドが使いやすくなると思います。人力検索はてな人力検索はてなモバイル版を表示しています。Bindings)が使えるようになり、static::を使うことで静的メソッドが使いやすくなると思います。それを踏まえた上で下記以外で静的メソッドを使うメリット・デメリット、また気をつけておきたいことがありましたら教えて下さい。◎メリット:インスタンスを作成するよりパフォーマンスがよくなる(はず)インスタンス作成の手間がいらない◎デメリット:->(アロー演算子)が使えないなお、今回はPHP5.3以降の話でお願いします。▽最新の回答へ▽1●りゅう●60ポイントパフォーマンス面のメリットは無いと考えるべきです。静的メソッドの呼び出しが早いとされる理由は、メソッドを見つけるためにクラスの継承チェーンを辿っていく必要が無いからですが、遅延静的束縛ではそれが必要になるので、結局インスタンスメソッドの呼び出しと同程度のコストになります。確かにインスタンスを生成しなくても使えますが、それで事足りるのはシングルトンパターンな場合だけなので、たとえインスタンスを生成したとしてもたかだか1回です。この1回が省略できたことでパフォーマンスが大きく変わることはないでしょう。遅延静的束縛の利点は、静的メソッドをサブクラスで再定義(オーバーライド)できることです。遅延束縛でない静的メソッドは、クラスという名前空間にある単なる関数でしたが、遅延束縛により普通のメソッドとして利用できるようになったという訳です。これによりPerlやRubyのO/Rマッパでよく使われる、クラスをシングルトンオブジェクトとして活用するというパターンがやりやすくなります。デメリットというか、罠としては静的フィールドはオーバーライドできないというものがあります。親クラスのフィールドを子クラスで再定義しても、フィールドの実体は親クラスにあるものが使われるため、静的フィールドは親クラスおよび兄弟クラス間で共有する状態になります。子クラスでフィールドの内容を変更したはずなのになぜか親クラスでも変わっていたという事が起ります。いうように、静的フィールドの扱いの面倒さと、シングルトンパターンでしか活用できないという応用範囲の狭さがあるので、積極的に活用するものでもないと思います。詳しい説明有り難うございます。自分でも色々試してみましたが、確かに使うのには制約があって面倒ですね。回答どうも有り難うございました。関連質問ASP.netでのLog4netの使用方法について質問です。GetLoggerで作...一戸建て購入にあたり勉強中です。□はてなトップ(C)株式会社はてな。