1

小问题,这样做更好吗

$HOST = $_SERVER["HTTP_HOST"];

$HOST在我的网络应用程序中使用

或者

这样做更好吗

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

HOST在我的整个 Web 应用程序中使用

或者

忘记使用变量和常量并在$_SERVER["HTTP_HOST"];每次需要主机时使用会更好吗?

哪种方式更有效率。哪种方式更具可读性。

我应该使用哪种方式?

4

4 回答 4

2

更适合你使用第二个,

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

定义它并在任何地方使用它..

任何情况下都不要选择第三个,因为硬编码将来会影响很多。

于 2012-04-12T13:02:13.067 回答
2

您拥有的全局变量越少越好,恕我直言,所以只需 $_SERVER["HTTP_HOST"]在您的所有应用程序中使用。如果你真的想定义它

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

是要走的路

于 2012-04-12T13:02:37.303 回答
0

全局状态通常很糟糕,因为它耦合了组件,打破了IoC概念。

我会使用依赖注入在类和模块之间传递参数。

但是如果你真的想使用一个全局变量,你为什么不直接使用$_SERVER["HTTP_HOST"]呢?

于 2012-04-12T13:02:49.960 回答
0

更好是一个相对术语。使用 $_SERVER["HTTP_HOST"] 是完全可以接受的,因为看到它的每个人都本能地知道它应该是什么,而不必猜测它是否包含完整的 URL 或其他内容。

即使您必须欺骗生产主机名进行测试,您仍然可以使用$_SERVER['HTTP_HOST'] = 'www.mywebsite.whatever';

于 2012-04-12T13:03:07.987 回答