2009-12-24 9 views
3

여기로 돌아가려면 거짓 값을 가져올 수 없습니다. 진정한 가치는 벌금을 반환합니다. 내가 뭘 놓치고 있니? 배열 $this->_brokenRulesCollection가 비어 있지 않은 경우PHP가 false 값을 반환하지 않습니다.

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

불분명 한 코드, 충분하지 않은 코드. –

+0

count ($ this -> _ brokenRulesCollection) *가 실제로 0이 아닌지 물어 보는 것은 다소 어려울 것입니다. – paxdiablo

+0

나는'return ($ this -> _ brokenRulesCollection == 0);'을 보겠다. 그러나 변수는 0이 아니다. –

답변

11

1을 반환합니다 구현 가산 근로 인터페이스 객체 및 true 아니다 1".

echo 대신 var_dump을 사용하여 디버깅하십시오.

+0

대부분의 의무 사항은 Nicolas입니다. 리마인더가 var_dump를 사용하려면 +1하십시오. <이슬 맺다 이마> – Stepppo

0

코드는 false을 반환 할 수 있습니다. $this->_brokenRulesCollection 만약

는 "문자열로 변환 배열 또는 문자열로 빈 문자열로 변환 할 때, 다음 count($this->_brokenRulesCollection)는 PHP, false에서

+0

그래서 빈 대신에 테스트하는 것이 낫지 않습니까? 기본적으로 배열에 내용이 있는지 알아야하고 그렇지 않으면 false를 반환해야합니다. – Stepppo

+0

예. '$ this -> _ brokenRulesCollection'이 비어 있지 않으면'empty ($ this -> _ brokenRulesCollection) '을 사용하면'false'를 반환합니다. 'empty'는'empty (trim ($ name))'처럼 사용할 수 없으므로 오류를 반환합니다. 또한 PHP에서'if ((count ($ array)) == 0)'는'if (! count ($ array))'로 쓸 수 있으며,보고 한 코드는'return! count ($ this -> _ brokenRulesCollection)'을 호출합니다. 부울 연산자 ('!','&&','||')의 경우 빈 문자열이 아닌 값, 항목이없는 배열, 0과 같은 정수, NULL, 문자열 ''0 '' 'TRUE'와 같은 것으로 간주됩니다. – kiamlaluno

+0

(follow-up) 예를 들어, '1 && "비어 있지 않은 문자열은'TRUE'를 반환합니다. – kiamlaluno

0

조건부 표현식 (유형 일치 연산자 === 또는! ==를 사용하지 않는 한) 0이 아닌 정수는 true와 같고 길이가 0이 아닌 문자열은 true와 반대로 0 또는 공백입니다 문자열은 거짓입니다.

그래서

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

는 같이 쓸 수있다 :

return count($this->_brokenRulesCollection); 

C.

0

을 당신이 실제로 당신이 반환하기 전에 변수에 값을 넣어, "거짓"을 참조하려는 경우 . 등 :

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

올바르지 않습니다. 반환 값을 반환하기 전에 변수에 저장할 필요가 없습니다. – Joni

관련 문제