2013-10-03 4 views
1

오류를 catch 할 수 있어야합니다. 나는PHP 캐치 오류

if($call['status_id'] != '' && $call['datetime_required'] != '') 
{ 
    //do stuff 
} 
else 
{ 
    // tell them how it failed 
} 

이 어떻게 TI 실패하는 섹션을 표시 가겠어요 다음 코드를 가지고있다. 예를 들어 나는

$errorField 

이 실패되는 경우 검사가

return 'You did not fill in the field $errorField'; 

즉 동적 오류 메시지를 반환 할 수 있습니다. 같은

UPDATE

내가 현재 코드 그래서

if($call['status_id'] != '') 
{ 
    if ($call['datetime_required'] != '') 
    { 
     //do stuff 
    } 
    else 
    { 
     // tell them it failed due to the second condition 
    } 
} 
else 
{ 
    // tell them it failed due to the first condition 
} 

그러나 TI가 실패한 위치에 따라 메시지를 한 줄에 체크를하고 변경하고 싶습니다.

참고 @jack은이 업데이트 전에 이미 답변을 게시했습니다.

+0

, 당신은 확실히 오류 메시지를 포함하는 문자열을 반환하고, 반환 값은 === TRUE 그렇지 않으면 오류 조건이 존재하여 반환 값이 가정 있는지 확인할 수 있습니다 오류. –

+0

예 클래스 메서드입니다. –

+0

유효성을 검사하는 모든 데이터가 반복 할 수있는 클래스 멤버에 저장되어 있습니까? –

답변

2
if($call['status_id'] != '') 
{ 
    if ($call['datetime_required'] != '') 
     //do stuff 
    } 
    else 
    { 
     // tell them it failed due to the second condition 
    } 
} 
else 
{ 
    // tell them it failed due to the first condition 
} 
+1

담요 "실패"진술에 비해 실패한 부분에 대해 세분성을 제공하므로이 솔루션을 좋아합니다. 더 사용자 친화적입니다. –

+0

필자는이 작업을 해왔지만, 제 동료가 코드를 너무 많이 부풀게하고 너무 많은 중첩 된 if 문을 사용하도록 권장했습니다. 따라서 한 번에 모든 수표를 수행 한 다음 오류를 반환하는 것이 좋습니다. –

+0

@JonPaulH 우리는 몇 개의 필드를 이야기하고 있습니까? –

3

나는 완전히 이해하고 있는지 모르겠다. 이런 뜻인가? 이 함수에있는 경우

function check($call, $req_fields) { 
    $failed = array(); 
    foreach($req_fields as $field) { 
     if(!$call[$field]) { 
      $failed[] = $field; 
     } 
    } 
    if(count($failed)) { 
     return join(', ', $failed) . ' are required.'; 
    } 
    return 'success?' ; 
} 

$message = check($call, array('status_id', 'datetime_required'));