2011-02-06 12 views
0

クラスには、次のようになります。PHP - クラスを使用する必要がありますか?

class do{ 
    function do_something($what){ 
    ... 
    echo $what; 
    } 

    function do_other_stuff($what){ 
    ... 
    echo $what; 
    } 
} 

と私はif(do::do_something('whatever'))...

またはdo::do_other_stuff('whatever')...

のようにそれを使用することになり、このようなクラスを使用してポイントはありますか?

基本的には、関数がクラス外にある場合に使用するように、関数を使用しています。何をやっている

+1

質問に答えていない[静的メソッド対機能](http://stackoverflow.com/questions/4690478/functions-vs-static-methods) –

答えて

9

クラスの関数を手続き関数のように呼び出すだけであれば、それほど価値があるとは言えません。それだけであなたのメソッドをグループ化するのに役立ちますが、プレフィックスなどで実現できます。オブジェクト指向プログラミングの価値は、カプセル化、懸念の分離などを利用することによってもたらされます。あなたが提供したコードサンプルを使用してください。 PHPのオブジェクト指向の機能を使用することは非常に役に立ちますが、オブジェクト指向のプログラミングを完全に理解し、オブジェクト指向の考え方にしておく必要があります。それ以外の場合は、その機能を利用しません。 。

4

は技術的に間違っている - あなたはPHPはの線に沿って、エラーを投げていることがわかりますE_STRICT警告を有効にした場合...

PHP厳しい基準:非静的 方法やる:: do_something() がで...かかわらず

スタティックにコールするべきではありませんが、私は既存のFunctions vs. Static Methods質問や詳細については、PHPマニュアルClasses and Objectsセクションの読み取りをお勧めします。

+0

の可能性の重複 - それは単にSTRICTだが構文エラー。彼がそれを 'public static function(){'に変更したなら、それはうまくいくでしょう。 – xil3

+2

@ xil3ちょうどPCになるには、OPは男だとは思わないでください...残念ながら、このフィールドでは安全な賭けですが、必ずしもそうとは限りません。 –

+0

@ xil3 Yupは、あなたのコメントを追加したときに更新中でした。 –

1

のようなものが必要な場合は

は、名前空間上のあなたの関数が含まれます。確かにOOPクラスを設計するための推奨された方法ではありませんが、ユーティリティコードを組み立てるための用途があります。だから、それはすべて悪くはありません。

しかし、実際のオブジェクト構造を設計するときは、世の中のタスクを実行するのではなく、「メッセージの受け渡し」を考えるのが最善です。メソッドを設計するときの結果やoccourencesについて考える。またbeware of setter and getter methods

0

静的メソッドの使用を選択した場合は、静的メソッドを宣言する必要があります。いくつか言及したように、あなたがそれを使用している方法の主な利点は、同様の機能を一緒にグループ化することです。私はいくつかのヘルパー関数のためにこれを行いますが、今はOOを学んだので、手順コーディングは、 OOコーディングについてもっと学ぶことを強くお勧めします。本当に素晴らしいものをやることができます。

class do{ 
    public static function do_something($what){ 
    ... 
    echo $what; 
    } 

    public static function do_other_stuff($what){ 
    ... 
    echo $what; 
    } 
} 
関連する問題