Web y desarrollo

Debug de arrays en PHP

Posted on: diciembre 3, 2008

Muchas veces un error de programación nos puede llevar a pasar algún que otro mal rato. Una errata en el código de un formulario o los valores de una consulta que no manejamos muy bien pueden llevarnos hacia resultados inesperados en un script (una acción que no se realiza sin dejar mensajes de error, filas que se insertan con valores incorrectos…). Aquí os dejo una pequeña función recursiva que recorre todos los elementos de un array y devuelve una cadena para que nosotros la imprimamos en pantalla en cualquier momento:

function debug_array($array){

$output = “”;
foreach($array as $key => $value){

$output .= “<p>”.$key.” => “.$value.”</p>”;
if (is_array($value)){

$output .= “<blockquote>”.debug_array($value).”</blockquote>”; 

}

}
return $output;

}

Llamar a la función es tan sencillo como esto:

echo debug_array($arrayquequierodepurar);

Anuncios
Etiquetas: , ,

7 comentarios to "Debug de arrays en PHP"

apuntada queda, reutilización de código!!

Interesante función, pero se me plantea una duda: ¿que ventaja obtendré por su uso que no me provea el código siguiente?

echo “”;print_r($array_a_depurar); echo “”;

Por otro lado dad la tematica de tu blog, igual te interesa el plugin Wp-Syntax (http://wordpress.org/extend/plugins/wp-syntax/other_notes/)

Saludos y animo, me encanta este proyecto 🙂

Raul

En el comentario anterior dentro de las comillas aparece <pre> y </pre>

Saludos

Raul, un placer. Por supuesto utilizaré Wp-Syntax.
Sobre debug_array(), tengo que darte una respuesta muy rebuscada en improvisada, lo más rápido es hacer lo que tú dices, pero imagínate que tenemos arrays relativamente grandes (o que somos un poco pijos) y hacemos esto dentro del código de la función:

$output .= "<p class = ‘".gettype($value)."’>".$key." => ".$value."</p>";

Eso nos permite tener una CSS fuera en la que definir, por ejemplo:
p#debug_int{color:#CC0000;}

La idea es tenerlo todo en una biblioteca aparte, debug.php, y en un css aparte, debug.css, de manera que los tenemos incluídos mientras estamos desarrollando, y al terminar los borramos.

Eso ya me convence mas 🙂 , como metodo base para montar un sistema mayor de debug … aqui comienza a ser interesante su uso mmmm ^

Ummm, parece sumamente interesante … Además me ha encantado la forma de salir del paso … jejeje esta me la apunto 😛

Efectivamente ha sido una forma de salir del paso… de todas formas intentaré organizar todo ese tipo de funciones en una biblioteca y las subo por aquí (cuando tenga tiempo).

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Posts Más Vistos

del.icio.us

Top Clicks

  • Ninguna

Calendario

diciembre 2008
L M X J V S D
« Nov   Ene »
1234567
891011121314
15161718192021
22232425262728
293031  
A %d blogueros les gusta esto: