
Una funzione che ho sempre ritenuto utile in PHP è la funzione print_r, la quale, sopratutto in fase di debug, permette di stampare il contenuto completo di un array (associativo o meno) oppure di un oggetto.
Il codice seguente fa la stessa cosa, solo che è possibile usarlo in javascript:
function print_r(o,level,max) { var output = ""; if(!level) level = 0; var padding = ""; for(var j=0;j<level+1;j++) padding += " "; if(!max) max = 10; if(level==max) return padding + "Max level ["+level+"] reached\n"; if(typeof(o) == 'object') { for(var item in o) { var value = o[item]; if(typeof(value) == 'object') { output += padding + "[" + item + "] => Array\n"; output += print_r(value,level+1,max); } else { output += padding + "[" + item + "] => \"" + value + "\"\n"; } } } else { output = "("+typeof(o)+") => "+o; } return output; }
L'uso della funzione è molto semplice:
var a = new Array("test string",'c',1000,23.1);
var o = {
"val" : "New array",
"number" : 33,
"nest" : arra
};
print_r(o);
Attenzione a come usate la funzione, perché nel caso di oggetti annidati o riferimenti circolari potrebbe dar luogo a un loop ricorsivo infinito. Occorre quindi usare il parametro di profondità con cui limitare la ricerca all'interno degli oggetti, di default questo valore è impostato a 10:
print_r(myobject,0,3);






