Funciones de ayuda para depuración de variables
Al aumentar la complejidad de los proyectos, puede resultar muy útil disponer funciones que sirvan para mostrar información. En PHP disponemos de _print_r()_ y _var_dump()_. La primera es una función que muestra información detallada de un variable
mixed _print_r_(mixed $expresion [, bool $devolver])
Nos muestra información sobre la variable _$expresion_ pasada como parámetro. Si la variable _$devolver_ es verdadera (su valor es TRUE), imprimirá lo que devuelve a su salida (podríamos almacenar la salida en un variable). Si pasamos una array como expresión, _print_r()_ dejará el puntero interno al final, por lo que tendremos que usar reset() para moverlo al principio. Más información en el manual de PHP: http://docs.php.net/manual/es/function.print-r.php
Veamos un pequeño ejemplo extraído del manual de PHP:
<pre>
<?php
$a = array ('a' => 'manzana', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
class Clase {
public $var;
}
$obj = new Clase;
$obj->var = 5;
print_r ($obj);
?>
</pre>
<pre>
: Etiqueta de inicio para preformatear texto en HTML
imprimirá esto:
Array
(
[a] => manzana
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
Clase Object
(
[var] => 5
)
void var_dump(mixed $expresion [,mixed $expresion [,$...]])
Esta función nos mostrará información más estructurada sobre una o más expresiones pasadas como parámetro incluyendo sus tipos y valores. Los arrays y objetos son explorados recursivamente mostrando una estructura con sus valores.
<pre>
<?php
$a = array ('a' => 'manzana', 'b' => 'banana', 'c' => array('x', 'y', 'z'));
var_dump ($a);
class Clase {
public $var;
}
$obj = new Clase;
$obj->var = 5;
var_dump ($obj);
?>
</pre>
nos mostrará esto:
array(3) {
[ ]=>
string(7)
[ ]=>
string(6)
[ ]=>
array(3) {
[0]=>
string(1)
[1]=>
string(1)
[2]=>
string(1)
}
}
object(Clase)#1 (1) {
[ ]=>
int(5)
}