get_object_vars() 它的作用就是返回类中所有的非静态方法: <?php class object1 { private $a = NULL; public $b = 123; public $c = 'public'; private $d = 'private'; static $e = 'static'; public function test(){ echo "<pre>"; print_r(get_object_vars($this)); echo "<pre>"; } } $test = new object1(); //print_r(get_object_vars($test)); $test->test(); ?>
如果把//print_r(get_object_vars($test));的注释打开的话,则输出: Array ( [b] => 123 [c] => public )
也就是说在外面只会弹出public的非静态的属性;
array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。
回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
提示:您可以向函数输入一个或者多个数组
/** * * Convert an object to an array * * @param object $object The object to convert * @reeturn array * */ function objectToArray( $object ) { if( !is_object( $object ) && !is_array( $object ) ) { return $object; } if( is_object( $object ) ) { $object = get_object_vars( $object ); } return array_map( 'objectToArray', $object ); }