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

results matching ""

    No results matching ""