2012-01-09 18 views
7

public static functionまたはprivate static functionを単にpublic functionまたはprivate functionの代わりに使用する利点は何ですか?PHP | public/private関数の代わりにpublic static/private static関数を使うべきですか?

+0

これは利点や欠点の問題がありません:

$object = new MyClass(); $result = $object->myInstanceMethod(); 

静的メソッドは、クラス自体で呼び出されます。また、サイトを検索しましたか? – BoltClock

+4

静的メソッドを使用するオブジェクトを作成する必要はありません。また、多くの関連する質問があります。 – meze

+0

はい、私はPHPマニュアルのサイトからいくつかを読んでいましたが、静的メソッドを使う理由を理解していないようですが、私はこの ' - ' 'これを行うことができます:: ::'その他の情報私はPHPマニュアルサイトの静的メソッドについて読んでいます... – Roland

答えて

22

定義されているクラスのインスタンスに対して、通常のメソッド(通常はインスタンスメソッドと呼ばれます)が呼び出されます。メソッドは常に$thisを介してそのオブジェクトにアクセスするため、そのオブジェクトによって運ばれたデータで動作します(実際にはそれを変更できます)。これはオブジェクト指向プログラミングの中核的な側面であり、クラスを単なるデータの集合以上にするものです。

静的メソッドの呼び出しは、特定のオブジェクトに関連付けられていません。この点では、通常の関数と同じように動作します。実際には唯一の違いはprivateとマークされていて、そのクラスを所有するインスタンスのプライベートメソッドと変数にアクセスできることです。静的関数は、実際には手続き型プログラミングの拡張です。

は、例えば、インスタンスメソッドは、オブジェクト上で呼び出された:

$result = MyClass::myStaticMethod(); 
関連する問題