我将我的 Wordpress 实例从 4.5 升级到 4.8,由于某种原因,我的 bool 环境变量现在返回为“false”字符串而不是 false
.因为我的 PHP 版本没有改变,所以我对这个改变有点困惑。然而,更重要的是,关于 future ,通过环境变量管理将 bool 值导入 PHP 的最佳方法是什么?
这是我拥有的 .env 行:
WP_FORCE_SSL_ADMIN=false
这是我在 wp-config.php 中返回的行
true
由于字符串转换。define('FORCE_SSL_ADMIN', getenv('WP_FORCE_SSL_ADMIN'));
这是 var_dump:
["WP_FORCE_SSL_ADMIN"]=>
string(5) "false"
我知道我可以简单地重构定义来解释字符串转换,但我很烦恼我不明白什么时候应该没有什么改变。这适用于 wordpress 4.5 版。
寻找答案来解释将 bool 变量从我的环境传递到 PHP 的最佳方法,还是我总是必须考虑字符串转换?
最佳答案
以防万一有人来这里寻找我如何解决它的答案,我所做的只是与“true”字符串进行比较。
define('FORCE_SSL_ADMIN', strtolower(getenv('WP_FORCE_SSL_ADMIN')) === "true");
虽然这有效,但对我来说仍然感觉不太正确,就像我错过了一些东西。
关于php - 为什么 get_env() 将我的 bool 环境变量视为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46181186/