蛊毒传说
因为在你施放它之前它是一个数组,所以投射它是没有意义的。你可能想要一个递归演员,看起来像这样:function arrayCastRecursive($array){ if (is_array($array)) { foreach ($array as $key => $value) { if (is_array($value)) { $array[$key] = arrayCastRecursive($value); } if ($value instanceof stdClass) { $array[$key] = arrayCastRecursive((array)$value); } } } if ($array instanceof stdClass) { return arrayCastRecursive((array)$array); } return $array;}用法:$obj = new stdClass;$obj->aaa = 'asdf';$obj->bbb = 'adsf43';$arr = array('asdf', array($obj, 3));var_dump($arr);$arr = arrayCastRecursive($arr);var_dump($arr);结果之前:array 0 => string 'asdf' (length = 4) 1 => array 0 => object(stdClass)[1] public 'aaa' => string 'asdf' (length = 4) public 'bbb' => string 'adsf43' (length = 6) 1 => int 3结果之后:array 0 => string 'asdf' (length = 4) 1 => array 0 => array 'aaa' => string 'asdf' (length = 4) 'bbb' => string 'adsf43' (length = 6) 1 => int 3注意:测试并使用复杂数组,其中stdClass对象可以包含其他stdClass对象。