我正在使用CodeIgniter。
我在配置文件中设置$config['global_xss_filtering'] = FALSE
。
然后我在system/core/Input.php
中找到了这段代码:
$this->_enable_xss= (config_item('global_xss_filtering') === TRUE);
它的代码到底是做什么的?它看起来不像是三元声明。在我看来是
$this->_enable_xss= (FALSE === TRUE);
在这种情况下,$this->_enable_xss
返回FALSE?
答案 0 :(得分:5)
这扩展为:
// If global_xss_filtering is a boolean TRUE (by strict comparison)
if (config_item('global_xss_filtering') === TRUE) {
// Set _enable_xss to TRUE
$this->_enable_xss = TRUE;
}
// Otherwise set it FALSE
else $this->_enable_xss = FALSE;
()
(config_item('global_xss_filtering') === TRUE)
中的部分是一个布尔比较,它将返回TRUE
或FALSE
。该值存储在$this->_enable_xss
。
所以在你的情况下,你是正确的,你正在评估
$this->_enable_xss= (FALSE === TRUE);
...将$this->_enable_xss
设置为FALSE
。
答案 1 :(得分:1)
每个比较运算符返回一个布尔值。
你的左右检查是否正确。
所以,是的,var_dump(true === false);//bool(false)
答案 2 :(得分:0)
声明周围有更多代码吗?我会说你的评估是有效的。看看这个论坛http://codeigniter.com/forums/viewthread/160281/#771216,它看起来只是根据配置值设置_enable_xss
,因此您可以控制设置。为什么他们需要进行比较是超出我的,似乎没必要。