2012-04-12 6 views
1

小さな疑問を使用する方法、それはより良いPHPスーパーグローバル、彼らに

$HOST = $_SERVER["HTTP_HOST"]; 

を行うと、

OR

はそれがより良い行うことです私のWebアプリケーション全体で$HOSTを使用することです

define ("HOST", $_SERVER["HTTP_HOST"]); 

ウェブアプリケーション全体でHOSTを使用してください。

OR

は、それがより良い変数と定数を使用して忘れて、ちょうど私がホストを必要とするたびに$_SERVER["HTTP_HOST"];使用するのですか?

どの方が効率的です。 どちらの方が読みやすくなっていますか?

私はどちらを使用しますか?

答えて

2

その2番目のいずれかを使用するためのより良い、

define ("HOST", $_SERVER["HTTP_HOST"]); 

...それを定義し、どこでもそれを使用

ハードコーディングがたくさんで影響を及ぼしますので、いかなる場合で三番目のために行ってはいけません未来。

+0

これは、可読性と(少しの)柔軟性を犠牲にして17 * n文字を節約します。それはOPsの提案だったので、投票を停止しないでください。 – Paystey

2

グローバル変数が少なくなるほど、IMHOはすべてのアプリケーションで$_SERVER["HTTP_HOST"]を使用してください。あなたが本当にそれ

define ("HOST", $_SERVER["HTTP_HOST"]); 

0

グローバル状態を移動するための方法で定義したい場合はIoC概念を壊し、そのカップルのコンポーネントから、通常は悪いです。

クラスとモジュール間でパラメータを渡すのにdependency injectionを使用します。

本当にグローバル変数を使用する場合は、$_SERVER["HTTP_HOST"]を使用してください。

+0

なぜdownvote?私は間違ったことを言ったのですか? –

+0

なぜupvote?矛盾した流行語の助言はどのように特定の質問をOPしますか? – mario

+0

さて、私は常に(私の視点から)最良の方法で質問に答えようとしています。この場合、私はAlexMorley-Finchが間違った質問をしていると思うので、彼が達成したいことに対するよりよいアプローチを提案しました。 –

0

これは相対的な用語です。 $ _SERVER ["HTTP_HOST"]の使用は完全に受け入れられます。なぜなら、それを見ている人は本物のものを知っていて、完全なURLが含まれているかどうかを推測する必要がないからです。

テストのために本番ホスト名を偽装する必要がある場合でも、$_SERVER['HTTP_HOST'] = 'www.mywebsite.whatever'でこれを行うことができます。