php не возвращает значение false - PullRequest
4 голосов
/ 24 декабря 2009

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

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

Ответы [ 4 ]

13 голосов
/ 24 декабря 2009

В PHP false при преобразовании в строку является пустой строкой, а true в преобразовании в строку - "1".

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

0 голосов
/ 23 сентября 2012

, если вы действительно хотите увидеть «ложь», поместите значение в переменную перед возвратом. как таковой:

if ((count($this->_brokenRulesCollection)) == 0)  {
    $value=true;
} else {
    $value=false;
}
return $value;
0 голосов
/ 24 декабря 2009

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

Итак

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

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

return count($this->_brokenRulesCollection);

С

0 голосов
/ 24 декабря 2009

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

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

...