这是if声明吗?

时间:2012-03-19 13:23:44

标签: php codeigniter

我正在使用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?

3 个答案:

答案 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)中的部分是一个布尔比较,它将返回TRUEFALSE。该值存储在$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,因此您可以控制设置。为什么他们需要进行比较是超出我的,似乎没必要。