# getenv

(PHP 4, PHP 5, PHP 7)

getenv — 获取一个环境变量的值

### 说明

getenv ( string `$varname` [, bool `$local_only` = `FALSE` ] ) : string
getenv ( void ) : array

获取一个环境变量的值。

使用 phpinfo() 你可以看到所有环境变量的列表。 这些变量很多都在 » RFC 3875 的范围之内， 尤其是章节4.1，"Request Meta-Variables"。

### 参数

`varname`

  变量名。

`local_only`

  设置为 true 以仅返回本地环境变量（由操作系统或 putenv() 设置）。

### 返回值

返回环境变量 `varname` 的值， 如果环境变量 `varname` 不存在则返回 `FALSE`。 如果省略 `varname`，则所有环境变量都将作为关联数组 array 返回。

### 更新日志

版本 | 说明
--- | ---
7.1.0 | 现在可以省略 `varname` 来检索所有环境变量的关联数组 array。
5.5.38, 5.6.24, 7.0.9 | 添加 `local_only` 参数。

### 注释

Warning

如果 PHP 在诸如 Fast CGI 之类的 SAPI 中运行，则此函数将始终返回由 SAPI 设置的环境变量的值，即使已使用 putenv() 来设置同名的本地环境变量。使用 `local_only` 参数返回本地设置的环境变量的值。

### 范例

Example #1 getenv() 例子

    <?php
    // getenv() 使用示例
    $ip = getenv('REMOTE_ADDR');

    // 或简单仅使用全局变量（$_SERVER 或 $_ENV）
    $ip = $_SERVER['REMOTE_ADDR'];

    // 安全地获取环境变量，忽略通过 SAPI 或 putenv 修改的值
    $ip = getenv('REMOTE_ADDR', true) ?: getenv('REMOTE_ADDR')
    ?>

### 参见

- putenv() - 设置环境变量的值
- apache_getenv() - 获取 Apache subprocess_env 变量
- 超全局变量