coolnix 개인블로그 - 리눅스, PHP, AWS,워드프레스 정보

Cannot use object of type stdClass as array !! 일떄

 

즉 1차는 배열이고 2차는 오브젝트 인 경우 이 에러가 발생한다.

왜? echo 를 배열 출력하듯이 했으니깐….

var_dump로 출력시

Array (
         [0] => stdClass Object (
                                             [user_id] => 1531458
                                             [cost] => $10.99
                                             [comment] => hello
                                             [tt] => 20110624171220 )
)

이런 식으로 나온다면 바로 이런 경우^^;

해결방법1echo $cart[1]->user_id;  이렇게 echo하면된다.

 

json사용시 이런 경우가 발생한다면….

단순 배열일경우 다음과 같이 반환됨
Array ( [0] => a [1] => b)…
이런 경우는 에러 없는데

문자인덱스배열일 경우에는 다음과 같이 반환됨.
stdClass object ([a] = > 고등어머리 [b] => 대구멸치)…
이럴때 배열 다루듯이 하면 에러가 나는 거임.

이럴 땐 아래와 같이 하면 해결됨.

해결방법2:

$xml_data=json_encode($Array);
$xml_data=json_decode($xml_data,true);

뭐 어쨋든 에러가 발생하는 이유는 오브젝트인데 배열처럼 다뤄서 이고
그러니깐 오브젝트 같이 방법1로 해결해도 되고 json 갖고 놀때 발생하는 거면 방법2로 해도 되는거고 그렇다…

참조:
http://goo.gl/O30AL
http://kr.php.net/manual/en/function.json-decode.php