Это если заявление? - PullRequest
       1

Это если заявление?

1 голос
/ 19 марта 2012

Я использую 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 ]

5 голосов
/ 19 марта 2012

Это расширяется до:

// 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 голос
/ 19 марта 2012

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

0 голосов
/ 19 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...