小问题,做得更好
$HOST = $_SERVER["HTTP_HOST"];
并在我的网络应用程序中使用$HOST
OR
做得更好
define ( "HOST", $_SERVER["HTTP_HOST"] );
并在整个网络应用程序中使用HOST
OR
最好忘记使用变量和常量,每次需要主机时只使用$_SERVER["HTTP_HOST"];
吗?
哪种方式更有效率。 哪种方式更具可读性。
我应该使用哪种方式?
答案 0 :(得分:2)
对你使用第二个更好,
define ( "HOST", $_SERVER["HTTP_HOST"] );
定义它并在任何地方使用它。
在任何情况下都不要去第三个,因为硬编码将来会影响很多。
答案 1 :(得分:2)
你拥有的全局变量越少越好,恕我直言,所以只需在你的所有应用程序中使用$_SERVER["HTTP_HOST"]
。如果你真的想定义它
define ( "HOST", $_SERVER["HTTP_HOST"] );
是要走的路
答案 2 :(得分:0)
全球状态通常很糟糕,因为它会耦合组件,打破IoC概念。
我会使用dependency injection在类和模块之间传递参数。
但是如果你真的想要使用全局变量,为什么不使用$_SERVER["HTTP_HOST"]
?
答案 3 :(得分:0)
更好的是相对术语。使用$ _SERVER [“HTTP_HOST”]是完全可以接受的,因为每个人都会本能地知道它应该是什么,而不必猜测它是否包含完整的URL或其他。
即使你必须欺骗生产主机名进行测试,你仍然可以使用$_SERVER['HTTP_HOST'] = 'www.mywebsite.whatever'
;