웹마스터 팁

PHP가 5.3에서 5.4로 업데이트 되면서 기존에 WARNING이 아니었던 내용이 WARNING, 즉 경고가 발생하는 부분이 있습니다. 여러 부분이 있겠지만 제일 보기 쉬운 오류로는 stdClass 관련 오류가 있겠습니다.(Creating default object from empty value)


PHP 5.3까지는 $aa->bb 와 같이 사용하면 자동으로 $aa를 stdClass로 초기화해 주었습니다.

하지만, 이것은 개발자가 오류를 찾기 힘들게 합니다.


예제를 하나 보겠습니다.

function setVars()
{
        if(otherFunc()) {
                $aa->bb='cc';
        }
        return $aa;
}

function MainFunc()
{
        $bb = setVars();
        $bb->bb=$bb->bb . 'dd';
}


위 함수에서 만약 otherFunc 함수가 0을 반환한다면 $aa는 stdClass로 초기화되지 않고, 개발자가 의도했던 결과(ccdd) 대신에 'dd'만이 저장될 것입니다.

하지만 어떠한 경고도 발생하지 않기에, 오류를 찾는 것에 시간이 오래 걸릴수 있겠죠.

물론 위 예제에서는 고의적으로 otherFunc의 반환값이 0일 경우를 생각하지 않았습니다만, 소스 코드가 커질 경우 살펴보기 어려워질 수 있겠죠.


따라서 무조건 WARNING을 끄기보다는, 왜 WARNING이 발생하는지 알아 보고, 적절한 위치에 stdClass 선언을 추가해 주는것이 좋을 것입니다.


외부 주소:

php 5.2 - 경고 미발생, 하지만 오작동중:http://yjsoft.bl.ee/error.php

php 5.3 - 역시 경고 미발생, 오작동중:http://yjsoft.pusku.com/error.php

php 5.4 - WARNING 발생:http://crecrew.pusku.com/error.php

php 5.4 - 수정이후 정상 동작:http://crecrew.pusku.com/normal.php

제목 글쓴이 날짜
회원 순위 공동순위 표시해서 뽑기(원리만 소개) 라르게덴 2009.02.13
주민등록번호 입력 폼 추가 (1.1.5 기준) [39] 개돌 2009.02.16
TortoiseSVN에서 특정 리비전 영역만 추출하기 [1] ◀CGlink▶ 2009.02.19
IIS에서 XE 설치 시 FTP 정보 등록에서 오류 조치 [4] impre 2009.02.20
플래너 최근문서(위젯)에 카테고리색 적용, Dday 적용, 지난 일정 출력 여부 조절 [7] file 주상태 2009.02.21
20메가 업로드 용량제한에 대한 이야기 ^^ [9] 만쓰별(정만) 2009.02.22
textarea 에디터를 사용하는 리플에서 태그 막기 [2] file 老姜君 2009.02.22
확장변수전용 권한설정 게시판스킨 미권한자에게 출력 (''깜박''오류?) 보고 file 0su 2009.02.25
테스트용 아이디 탈퇴 막기 [1] SMaker 2009.02.26
lighttpd 에서 XE rewrite 기능 (.htaccess) 사용하기 [2] msl2246 2009.02.28
첨부파일의 외부 무단 링크 차단하기(XE) 게시판설정 [7] file 왕초보왕따 2009.03.02
윈도우, 리눅스, 맥서버에서 이슈트래커 동작가능하게 하기 [1] file 뽀여니 2009.03.02
2003 + RWAPM + faceOff + IE7 = rewrite mod 에러 neotec 2009.03.03
Smarty 한글 메뉴얼 공개합니다. [1] 미니미 2009.03.04
이슈 트래커 소유자 변경 시 그룹별 선택 기능 file 개돌 2009.03.05
사진이 떳다 사라지는 문제 해결법 [2] 현진 2009.03.07
게시판 가로사이즈 줄이기....[초보만 클릭] [4] 유팔복 2009.03.07
svn 업으로 xe 최신본 유지하기 [2] file e~세상쉼터 2009.03.08
Faceoff 버젼에서 확장변수 마음대로 배치하기 ^^ 파파민 2009.03.13
게시물 가운데 정렬 문제 임시해결법 한신일 2009.03.15