2009-10-26 3 views
1

PHP에서 몇 가지 간단한 유효성 검사 규칙을 만들고 있는데 내 IDE (phped)가 구문에 대해 불평하고 있습니다.PHP이 코드의 구문에 어떤 문제가 있습니까?

누구나 다음과 같은 문제가 있다고 말할 수 있습니까?

function notBlank($str) { 
    (strlen($str) == 0) ? return false : return true; 
} 

phped는 '예기치 않은 리턴'

감사 어떤 조언을 호소.

감사합니다. 이 같은

답변

13

쓰기를이 같은

function notBlank($str){ 
    return strlen($str) != 0; 
} 
2

쓰기를 : 원 사업자 내에서

function notBlank($str) { 
    return (strlen($str) == 0 ? false : true); 
} 
+0

여기 삼항 연산자에 대한 필요가 없습니다. –

+0

연산자가 부울을 반환하므로 false 또는 true를 제거 할 수 있습니다. – Garrett

+0

물론, 이것은 코딩의 제 스타일입니다 ... –

2

당신 캔트 사용 돌아갑니다. 당신이 구문을 유지하려면 당신이 뭔가를 할 필요가 :

function notBlank($str = '') { 
    $var = (strlen($str) == 0) ? false : true; 
    return $var; 
} 

그럼에도 불구하고 일을하는 기본 방법은 더 읽을 것을 통지를 수행

function notBlank($str = '') { 
    if(strlen($str) == 0) 
     return false; 
    else 
     return true; 
} 

는 희망이 도움이!

+1

그냥 "return! x"를 사용할 수있을 때 "if (x) return false else return true"유형 구성을 좋아한다고 말할 수는 없습니다. 그럼에도 불구하고 쿼리에 잘못된 점에 대한 원래의 질문에 실제로 답하는 것이 +1이됩니다. – Beska

0

strlen()은 문자열이 비어있을 때 0을 반환하고 PHP는 0==false입니다. 그래서 실제로 함수에서 strlen()을 감쌀 필요는 없습니다. 불리언 답변을 주장하려면 캐스트하십시오. 예 : 당신은 또한 확인하는 것 같아서하지만

(bool) strlen($string); 

그래서 대신 assumably는 IF 블록에서 호출되는 함수를, 당신은 단지,

if(strlen($string)) //etc. 
+0

코드를 쉽게 이해할 수 있도록 함수로 묶을 수 있습니다. "공백"의 정의가 미래에는 변하지 않을 것이라고 누가 말합니까? 함수에서 래핑 된 코드는 추상화되어 있기 때문에 코드를 더 잘 처리 할 수 ​​있습니다. – rmeador

+0

@rmeador : 저에게 이것은 just-in-case 프로그래밍과 같습니다. 결국 좀 더 복잡한 조건을 구현할 계획이라면 함수를 만드는 것이 적절할 것입니다. 하지만 그 의도가 없다면 간단한 함수 호출을 감싸서 속도를 늦추고 싶지는 않을 것입니다. – dnagirl

관련 문제