Php 如何编写像print_r()这样的递归打印对象的函数?
我想编写一个函数,将文本(或整数等)多维对象打印到Php 如何编写像print_r()这样的递归打印对象的函数?,php,recursion,Php,Recursion,我想编写一个函数,将文本(或整数等)多维对象打印到标记中,并将数组打印到无序列表中 如何使函数递归工作,使其打印所有内容,而不考虑它在对象中的级别 谢谢 对象可以被视为数组-尝试使用foreach function dump($obj, $prefix='') { foreach ($obj as $key=>$val) { print "$prefix attribute $key is a " . gettype($val) . "=";
标记中,并将数组打印到无序列表中
如何使函数递归工作,使其打印所有内容,而不考虑它在对象中的级别
谢谢 对象可以被视为数组-尝试使用foreach
function dump($obj, $prefix='')
{
foreach ($obj as $key=>$val) {
print "$prefix attribute $key is a " . gettype($val) . "=";
switch (gettype($val)) {
case 'string':
case 'boolean':
case 'resource':
case 'double':
case 'NULL':
var_export($val,true) . "\n";
break;
case 'object':
print "(class=" . get_class($val) . ")";
case 'array':
print "(";
dump($val, $prefix . ' ');
print ")\n";
default:
print "????\n";
}
}
}
C.或更简单,以防递归打印数组的键
function print_tree($array, $level = 0){
foreach($array as $key => $este){
echo str_pad($key, strlen($key) + $level, " ", STR_PAD_LEFT) . "\n";
if (is_array($este))
print_tree($este, $level+1);
}
}
Duplicate:…但如果有循环引用,可能需要限制递归。