ini_set() 总是返回 false
Posted
技术标签:
【中文标题】ini_set() 总是返回 false【英文标题】:ini_set() always returning false 【发布时间】:2013-02-23 07:05:13 【问题描述】:在我当前的项目中,我有一个 security.php,其中包含一些函数和一些 ini_set() 语句。
ini_set('session.use_trans_sid', 0);
ini_set('session.use_only_cookies', 1);
ini_set('session.cookie_secure', 1);
ini_set('session.hash_function', 'whirlpool');
ini_set('session.cookie_httponly', 1);
ini_set('session.hash_bits_per_character', '5');
所以这是我的问题。如果我进行某种检查...
if(ini_set('session.use_trans_sid', 0) === false)
echo "Foo!";
无论我尝试设置哪一个,它总是返回 false。 我以为问题出在security.php权限上,但我错了。
编辑
var_dump(ini_set('display_errors', '0'));
返回字符串(0)“”
还有什么想法吗?
谢谢,塞巴斯蒂安
【问题讨论】:
从 if 语句中删除逗号和 0。你在那里赋值 你不应该使用ini_get
吗?
@Sebastian,有趣的问题。你能检查一下 ini_set 是否适用于其他 ini 值吗?...例如:var_dump(ini_set('display_errors', '0'));
?
@Sebastjan .. 这意味着 ini_set() 基本上可以工作
您知道ini_set
返回旧值吗?
【参考方案1】:
ini_set
总是返回一个字符串,所以这个严格的比较总是假的:
ini_set('session.use_trans_sid', 0) === false
如果您想在不更改的情况下检查该值,请使用ini_get
:
if (ini_get('session.use_trans_sid') == 0) ...
或
if (!ini_get('session.use_trans_sid')) ...
ini_set
将设置值并返回之前的值。
【讨论】:
ini_set
在失败时返回 false,根据文档 (php.net/manual/en/…)。以上是关于ini_set() 总是返回 false的主要内容,如果未能解决你的问题,请参考以下文章