Я не могу заставить ложное значение возвращаться сюда. Истинное значение возвращается прекрасный. Что я пропускаю?
if ((count($this->_brokenRulesCollection)) == 0) {
return true;
} else {
return false;
}
В PHP false
при преобразовании в строку является пустой строкой, а true
, преобразованным в строку, имеет значение «1».
Используйте var_dump
вместо echo
для отладки.
Код может просто вернуть false
, если массив $this->_brokenRulesCollection
не пуст.
Если $this->_brokenRulesCollection
не является массивом или объектом с реализованным интерфейсом Countable, то count($this->_brokenRulesCollection)
вернет 1.
В условных выражениях (если только вы не используете операторы сравнения типов === или !==) любое ненулевое целое число эквивалентно true, любая строка ненулевой длины эквивалентна true и наоборот, ноль или пустая строка являются false.
Так что
if ((count($this->_brokenRulesCollection)) == 0) {
return true;
} else {
return false;
}
Можно записать как просто:
return count($this->_brokenRulesCollection);
C.