getenv()不会显示所有变量,即使已设置它们也是如此

时间:2019-10-10 08:14:37

标签: php apache

我正在测试在.htaccess中设置环境变量供我的php代码使用,并面临SetEnv BOP 23 函数的奇怪行为。


在.htaccess中,我设置了

$res = getenv("BOP");
echo($res);
>>>>  23

在我的php中,我成功获得

var_dump(getenv());

但是当我尝试使用getenv()或使用调试器查看getenv()返回的数组中的内容时,我得到了长度为23的数组,但缺少“ BOP”变量。


例如,如果我尝试将$array = getenv(); echo($array["BOP"]) 转储到数组中并进行查找:

Exception has occurred.
Notice: Undefined index: BOP

我得到一个例外:

getenv()

根据我在这里所读到的关于varname https://www.php.net/manual/en/function.getenv.php

  

...如果省略getenv(),则所有环境变量将作为关联数组返回。

那我想念什么?为什么我可以访问变量,但不是在$(document).ready(function(){ $.getJSON("data/db.json", function(data){ var dbdata = ""; $.each(data, function(key,value){ dbdata += '<tr>'; dbdata += '<td>' + value.userId + '</td>'; dbdata += '<td>' + value.id + '</td>'; dbdata += '<td>' + value.title + '</td>'; dbdata += '<td>' + value.completed + '</td>'; dbdata += '</tr>'; }) $('#datainfo').append(dbdata); }) }) 中呢?

1 个答案:

答案 0 :(得分:1)

请确保使用PHP 7.1或更高版本

从7.1.0版 getenv()不再需要其参数。如果省略该参数,那么当前环境变量将作为关联数组返回。