무플 무서워요
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /DATA/dozenideas/public_html/online/dic.php on line 9
PHP5로 OpenAPI를 만지작 거리다가 웹에 올려도 같은 결과가 나올지 궁금해서 파란 무료 호스팅에 올려봤다. 내 컴퓨터에서는 잘 돌아가던 소스가 막상 웹에서는 'Unexpected T_OBJECT_OPERATOR' 이런 오류를 출력한다?

알고보니 파란 호스팅은 PHP4가 설치되어 있어 simpleXML을 인식을 못하는 것이었다.(simpleXML은 PHP5이상 지원)

네이버 openAPI 가이드북에 보면 백과사전 검색 샘플 예제가 나와 있는데 PHP5에서 사용할 수 있는 simpleXML함수를 사용하고 있다. 따라서 그 아래 버전이 설치되어 있는 컴퓨터에서 실행을 하면 당연히 에러가 난다.

T_OBJECT_OPERATOR에러는 PHP manual에 '해석기 토큰 목록'에 보면 '->' 문법이 잘못된 것이라고 나와있고 참고 문서로 classes and objects가 링크되어 있다.

$item=simplexml_load_file($url)->channel->item[0];

simpleXML이 지난번 포스팅에서도 언급했듯이 object 형태를 반환하는데 위의 문장에서 보면 반환되는 object에서 channel의 item[0]에 접근하기위해 사용하는 '->' 이것이 simpleXML을 모르는 PHP4에서는 당연히 위와같은 에러가 날 수 밖에 없다.

해결 방법은... XML을 쉽게 다룰 수 있는 simpleXML을 사용하기 위해 PHP5로 업그레이드 하거나, 부득이하게 PHP4를 사용해야 하는 경우라면 아래의 URL을 참고해서 학습하고 해결할 수 있다.

Backport of PHP5 simpleXML
http://www.web2dong.com/?document_srl=2559#0
http://blog.kakaka.org/archives/162

Unexpected T_OBJECT_OPERATOR -- SimpleXML Error
http://forums.devshed.com/php-development-5/unexpected-t-object-operator----simplexml-error-455031.html
: