2011-01-15 15 views
0

私のアプリケーションは、関数からなるクラスを使用します。通常、関数は "return $ var"を使用してその結果を返します。私は疑問に思っていますが、 "返す"の代わりに私は結果を (配列)から直接関数内でエコーしますが、それは受け入れられますか?ちょうどいくつかのケースでは、それは私にとってより便利です。ありがとう。クラス内でのPHP関数の使用

答えて

4

アプリケーションの「ロジック」部分とその「表示」部分を分けたほうがよいです。

あなたのメソッドに "return"を残し、結果をウェブサイトの "font-end"部分にエコーする方が良いと思います。

P.S. MVC design pattern :)アプリケーションを論理的に分割する方法を理解することは本当に良いことです。

0

実際には、大部分のWebアプリケーションがこれらの組み合わせを使用すると期待しているエコーやその他の関数/メソッドを持つことは間違いありません。

しかし、私は次のことを検討したい:

  1. あなたはおそらく、「出力」機能(すなわち:エコー機能)の数を維持したいと思う少ない領域があるように最小限に

  2. 機能の計算または「実行」の部分を出力から分離するようにしてください(非常に基本的な懸念事項の分離それはあなたのレベルです)。

0

ただし、クラスの柔軟性と移植性が低下する可能性があります。あなたや他の人が結果の配列を取得し、それが表示される前に(またはいくつかのキー/値)操作したいとしたらどうなりますか?

いつでも移植性を考えてください。あなたが書いたときにあなたが使っている方法以外の方法であなたの機能が使用される可能性がある場合は、できるだけポータブルにしてください。

0

まあ、配列をエコーすると、PHPの文字列Array()が出力されます。

あなたが意味するのは、関数内からその配列の結果をエコーすることですが、それは許容されますが、実際には推奨されません。理論的に関数は出力とは関係ありません。それらを処理し、その処理の結果を返すようにそれらの値を与える必要があります。処理のために返された値を必要としない場合、複雑なWebアプリケーションのコンテキストでは、なぜ機能が必要なのでしょうか?

これは厳密にあなたの質問に関係する部分でした。

ただし、作成するのがより一般的な点です。プレゼンテーション(ユーザーに表示されるもの)は、手順と分けてください。

これを達成する最も簡単な方法は、html/phpページから($ _GET、$ _POSTまたはurlのデータを使用して)関数を呼び出すことです。将来的に非常に役立つクールなアプローチを学びたい場合は、MVCパターンといくつかのMVCフレームワークをチェックしてください。

+0

バナー管理モジュールです。私は、ターゲットに複数のパラメータを持つ関数を呼び出し、SQLクエリを実行し、結果を取得し、重み付けのために別のクラスに渡し、IDの配列を取得します。私がそれらをすぐに処理するならば、他のすべての変数(バナー画像、テキストなど)を利用できますが、配列を返すと(IDのみ)、欠落しているパラメータを取得するために別の関数を実行する必要があります広告の数について私はそれがパフォーマンス上の考慮事項を避ける方が良いと思った... – ted

0

クラスのメソッドによって出力をエコーするのは悪いことではありません。使用するデザインパターンに反する場合を除き、使用する必要があります。

最も普及しているのは、Model-View-Controller (MVC)というパターンです。出力は、Viewクラスの選択されたメソッドによってのみエコーされる必要があります。他のクラスのメソッドは、そのビジネスについてのみ気を配り、Viewはすべての出力をレンダリングします。しかしこれはデザインパターンの1つで、それを使う必要はありません。

関連する問題