我在 Windows 环境变量 -> 用户变量中定义了一个环境变量
$MY_VARIABLE=mypath
在php中我尝试像下面一样访问它
<?php
echo $_ENV["MY_VARIABLE"];
但它不打印任何东西。我在这里遗漏了什么还是 PHP 无法访问用户环境变量?
编辑:我将 PHP 作为 Apache 模块运行(我最初遗漏的重要信息)。
我在 Windows 环境变量 -> 用户变量中定义了一个环境变量
$MY_VARIABLE=mypath
在php中我尝试像下面一样访问它
<?php
echo $_ENV["MY_VARIABLE"];
但它不打印任何东西。我在这里遗漏了什么还是 PHP 无法访问用户环境变量?
编辑:我将 PHP 作为 Apache 模块运行(我最初遗漏的重要信息)。
由于PHP 中的 variables_order 设置,您$_ENV
是空的
编辑你的 PHP.INI
改变
variables_order = "GPCS"
至
variables_order = "EGPCS"
如果它不尝试使用.htaccess
来实现这一点,它现在应该可以工作了
将以下内容添加到您的.htaccess
SetEnv foo bar
您可以通过 PHP 获取它
var_dump(getenv('foo'),$_ENV);
最近我写了一个库来从环境变量中获取值并解析为 PHP 数据类型。该库可用于将环境变量解析为 PHP 数据类型(如转换为整数、浮点数、空值、布尔值),解析 JSON 字符串等复杂数据结构,以及更多社区的贡献。
该库可在此处获得:https ://github.com/jpcercal/environment
并从环境变量中获取值来做到这一点:
<?php
// ...
require "vendor/autoload.php";
// ...
var_dump(Cekurte\Environment\Environment::get("MY_VARIABLE"));
好好享受。