为什么get_env()将我的布尔环境变量视为字符串?

时间:2017-09-12 16:13:50

标签: php wordpress

我将我的Wordpress实例从4.5升级到4.8,由于某种原因,我的布尔环境变量现在返回为" false"而不是false。由于我的PHP版本没有改变,我对这个改变有点不知所措。但更重要的是,关于前进,通过环境变量管理将布尔变为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。

寻找答案来解释将布尔变量从我的环境传递到PHP的最佳方法,还是我总是要考虑字符串转换?

1 个答案:

答案 0 :(得分:1)

万一有人来到这里寻找我如何解决它的答案,我所做的只是简单地比较" true"的字符串。

define('FORCE_SSL_ADMIN', getenv('WP_FORCE_SSL_ADMIN') === "true");

虽然这有效,但对我来说仍然不太合适,就像我错过了一些东西。