2017-12-18 6 views
1

전자 메일 메시지의 여러 부분을 보는 클래스를 작성했습니다. 한 가지 기능은 파일 이름이 해당 속성 배열에 있는지 확인하여 각 부분이 파일인지 확인하는 것입니다.PHP 클래스 배열 오류

내 체크 보이는 같은 :

if (array_key_exists("filename",$body_part->d_parameters)) { 
    // do stuff 
} 

그러나 일부 파일 (헤더, 바디 등) "파일 이름이라고 더 배열 키가 존재하지 어디 때문에 경우에 내 로그에서이 오류가 계속 . "

답변

1

첫 번째 오류는 참조 할 때 $body_part->d_parameters이 존재하지 않기 때문에 발생합니다. 함수에 객체 속성을 통과하기 전에 isset()is_array()를 사용 $body_part->d_parameters 당신이 array_key_exists()

솔루션에 전달 배열이 아니기 때문에

번째 오류입니다.

if (isset($body_part->d_parameters) and is_array($body_part->d_parameters) and array_key_exists("filename",$body_part->d_parameters)) { 
    // do stuff 
} 
+1

정확히 왜 이것을 줄였습니까? – War10ck

+0

1 분 후에 조금 더 많은 텍스트를 추가했지만 어쩌면 상대적으로 기본적인 PHP 질문에 대답했기 때문일 수 있습니까? – Scuzzy

+1

아무 걱정도, 나도 몰라, 나는 그것을 upvote 것이다. 그러나'empty'를 사용하면 conciser 조건문을 작성할 수 있습니다 : http://sandbox.onlinephpfunctions.com/code/7edb569af95a08d0ed71fcc3e26aa783fbbadf49 – HPM