2012-03-19 2 views
1

Я использую CodeIgniter.Это утверждение if?

Я установил $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

есть ли еще код вокруг заявления? Я бы сказал, что ваша оценка действительна. – Robert

ответ

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

каждый оператор сравнения возвращает логическое значение. Ваши чеки, если у вас есть истина слева и справа. Итак, да, var_dump(true === false);//bool(false)

0

есть ли еще код вокруг заявления? Я бы сказал, что ваша оценка действительна. Глядя на этот форум http://codeigniter.com/forums/viewthread/160281/#771216, похоже, что он просто устанавливает _enable_xss на основе значения конфигурации, чтобы вы могли управлять настройкой. Почему они должны делать сравнение за пределами меня, кажется ненужным.

Смежные вопросы