php, не возвращающий значение лжи

Я не могу заставить ложное значение возвращаться сюда. Истинное значение возвращается прекрасный. Что я пропускаю?

if ((count($this->_brokenRulesCollection)) == 0)  {
    return true;
} else {
    return false;
}
5
задан Asaph 24 December 2009 в 03:49
поделиться

3 ответа

В PHP false при преобразовании в строку является пустой строкой, а true , преобразованным в строку, имеет значение «1».

Используйте var_dump вместо echo для отладки.

14
ответ дан 18 December 2019 в 14:47
поделиться

Код может просто вернуть false, если массив $this->_brokenRulesCollection не пуст.

Если $this->_brokenRulesCollection не является массивом или объектом с реализованным интерфейсом Countable, то count($this->_brokenRulesCollection) вернет 1.

.
0
ответ дан 18 December 2019 в 14:47
поделиться

В условных выражениях (если только вы не используете операторы сравнения типов === или !==) любое ненулевое целое число эквивалентно true, любая строка ненулевой длины эквивалентна true и наоборот, ноль или пустая строка являются false.

Так что

if ((count($this->_brokenRulesCollection)) == 0)  {
   return true;
} else {
  return false;
}

Можно записать как просто:

return count($this->_brokenRulesCollection);

C.

0
ответ дан 18 December 2019 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: