가끔 object로 받을때가 있거든요.
그대로 써도 상관없지만 array로 바꿔 쓸때가 있기 마련이지요.
/**
* object to Array
*
* @param object $object 오브젝트
* @return Array $return 배열
*/
function objectToArray( $object )
{
$return = array();
if( !is_object( $object ) && !is_array( $object ) )
{
return $object;
}
if( is_object( $object ) )
{
foreach($object as $key => $value){
if(count($value) > 0){
$value = $this->objectToArray($value);
} else {
if(isset($value))
settype($value, 'array');
}
if(isset($value))
$return[$key] = $value;
}
return $return;
}else{
foreach($object as $key=> $value){
if(count($value) > 0){
$value = $this->objectToArray($value);
} else {
if(isset($value))
settype($value, 'array');
}
if(isset($value))
$return[$key] = $value;
}
}
return $return;
}
<?php
class A {
private $A; // This will become '\0A\0A'
}
class B extends A {
private $A; // This will become '\0B\0A'
public $AA; // This will become 'AA'
}
var_dump((array) new B());
?>그냥 (array) 케스팅 하면 array로 나와요.
야후 right media에서 soap을 통해 가져오는 데이터가 object array라 array로 변환해주는 함수를
하나 만들어서 사용.
public function transObject($data) { //array_walk($data, create_function('&$a', 'settype($a, "array"); array_push($a, count($a));')); if (gettype($data) != 'array') { settype($data, 'array'); } else { array_walk($data, create_function('&$a', 'settype($a, "array");')); } return $data; }