제목 | A PHP Error was encountered | ||
---|---|---|---|
글쓴이 | 문군 | 작성시각 | 2019/09/26 12:18:57 |
|
|||
보통 코드 이그나이터를 쓰다보면 이런 식의 에러 메시지를 보여준다.
A PHP Error was encountered Severity: Notice Message: Trying to get property of non-object Filename: controllers/board.php Line Number: 24
객체를 참고 했는데 객체가 존재하면 문제없이 출력하지만 객체가 없는 경우 위와 같은 에러 메시지가 나온다.
예를 들어 $member 라는 객체에 데이터를 담아 출력한다고 하면 $member->mb_hp 이런 식으로 데이터를 출력 한다고 하면 데이터가 없을 때, 위와 같은 에러가 출력된다.
유효성 검사 없이 바로 출력했기 때문이다.
해결책은 유효성 검사를 먼저 하는 것이다.
$member라는 변수는 보통 array 객체 이기 때문에 count라는 내부 함수로 처리하는 것으로 하는데 숫자를 세면 객체가 없으면 0을 리턴하게 되고 0이상이면 객체가 있기 때문에 초기화된 변수에 담는다.
잘못된 예시 echo $member->mb_hp;
올바른 예시
방안 1 $mb_hp=""; if(count($member)>0) { $mb_hp=$member->mb_hp; } echo $mb_hp; 방안 2 (삼항 연산자 사용) $mb_hp=count($member)>0?$member->mb_hp:""; echo $mb_hp;
|
|||
다음글 | wp 스타일 후크 헬퍼 (2) | ||
이전글 | XSS filtering에 대해서 (5) | ||
변종원(웅파)
/
2019/09/26 12:38:43 /
추천
0
미리 선언해주는게 제일 좋은 방법이고 배열의 경우엔 기술해주신 것처럼 해주시는게 좋습니다. ^^
|