php - 为什么 get_env() 将我的 bool 环境变量视为字符串?

标签 php wordpress

我将我的 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/

相关文章:

php - 长轮询服务器

php从其他变量中获取变量名

php - 是否可以仅限制 AJAX 的路由?

php - MySQL Import 通过 PhpMyAdmin 成功导入转储文件。但是通过PHP导入不行

php - WordPress 数据库内存错误

javascript - 向下滚动时替换div中的图像

WordPress 过滤器 user_row_actions

php - 无法连接到 PostgreSQL 服务器

javascript - WooCommerce 的动态交付时间计数器作为简码

mysql - 备份后索引长度和数据长度短一点可以吗