nasıl yinelemeli nesneleri yazdırır print_r gibi bir işlev () yazıyorsunuz?

2 Cevap php

i sırasız listelerde <span></span> etiketleri ve diziler içine (vb veya tamsayılar) yazı çok boyutlu nesneleri yazdırır bir fonksiyon yazmak istiyorum.

ne olursa olsun o nesne de ne düzeyde herşeyi yazdırır, böylece nasıl işlev çalışma yinelemeli yapabilirim?

teşekkürler!

2 Cevap

Nesneler diziler olarak tedavi edilebilir - foreach kullanmayı deneyin ....

 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.

Ya da basit, dava özyinelemeli bir dizinin anahtarları yazdırmak için,

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);
    }
}