Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 环境相关值_Php - Fatal编程技术网

Php 环境相关值

Php 环境相关值,php,Php,有时,我需要使用一个动态值,根据代码是在测试环境中执行还是在远程主机上执行,该值会有所不同 为了解决这个问题,我一直在使用以下函数: function localhost($local_host_value, $remote_host_value = "") { if($_SERVER["REMOTE_ADDR"] == "127.0.0.1") { return $local_host_value; } else { return $rem

有时,我需要使用一个动态值,根据代码是在测试环境中执行还是在远程主机上执行,该值会有所不同

为了解决这个问题,我一直在使用以下函数:

function localhost($local_host_value, $remote_host_value = "")
{
   if($_SERVER["REMOTE_ADDR"] == "127.0.0.1")
   {
      return $local_host_value;
   }
   else
   {
      return $remote_host_value;
   }
}
你能为上面引用的函数建议一个更优雅的方法或至少更好的名称吗?

如果你不喜欢使用超级全局变量,你可以试试

// Example use of getenv()
$ip = getenv('REMOTE_ADDR');

// Or simply use a Superglobal ($_SERVER or $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];
至于函数名

function is_localhost(...)    <-- more like determine is local host (boolean)

function get_host_value(...)  <-- (string)
函数是\u localhost(…)如果您不喜欢使用超全局变量,可以尝试

// Example use of getenv()
$ip = getenv('REMOTE_ADDR');

// Or simply use a Superglobal ($_SERVER or $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];
至于函数名

function is_localhost(...)    <-- more like determine is local host (boolean)

function get_host_value(...)  <-- (string)
函数是\u localhost(…)
在我看来,它更简洁、更简洁,但实际上是一样的。
或者使用ajreal建议的getenv:

function localhost($local_host_value, $remote_host_value = '') {
    return getenv('REMOTE_ADDR') == '127.0.0.1'? $local_host_value : $remote_host_value;
}
关于函数名,我可能会选择
get\u host\u value(…)

PS:当字符串不包含变量时,请尝试使用单引号而不是双引号:

在我看来,它更简洁、更简洁,但实际上是一样的。 或者使用ajreal建议的getenv:

function localhost($local_host_value, $remote_host_value = '') {
    return getenv('REMOTE_ADDR') == '127.0.0.1'? $local_host_value : $remote_host_value;
}
关于函数名,我可能会选择
get\u host\u value(…)


PS:当字符串不包含变量时,尝试使用单引号而不是双引号:

我认为从长远来看,这种方法不是最佳的,因为所有设置都分布在代码中,并且很难添加第三个服务器环境(例如,实时暂存服务器)

我会考虑使用某种类型的中心配置,它根据一个服务器上运行的某个点加载所有配置值。p> 相关的:


我认为从长远来看,这种方法不是最佳的,因为所有设置都分布在您的代码中,并且很难添加第三个服务器环境(例如,实时登台服务器)

我会考虑使用某种类型的中心配置,它根据一个服务器上运行的某个点加载所有配置值。p> 相关的:


嗯。。。代码始终在本地主机上执行:P@Mchl,我指的是一个测试环境(127.0.0.1)。合适的术语是什么?“测试环境”是合适的术语;)嗯。。。代码始终在本地主机上执行:P@Mchl,我指的是一个测试环境(127.0.0.1)。合适的术语是什么?“测试环境”是合适的术语;)
is_localhost(…)
对于我来说,它将返回一个布尔值,无论我们是否在localhost中。。。我发现
get\u value\u for\u host(…)
get\u host\u value(…)
更具描述性
is\u localhost(…)
对于我来说,它会返回一个布尔值,无论我们是否在localhost中。。。我发现
get\u-value\u用于主机(…)
get\u-host\u-value(…)
更具描述性