Depurar y debuggear PHP con print_r, var_dump y gettype
Obtener los tipos de datos de variables o expresiones
PHP proporciona las funciones gettype(), print_r() y var_dump (), que imprimen el tipo de dato y el valor de una expresión en una forma humanamente legible.
Estas funciones son útiles para depurar un script, especialmente cuando se trata de matrices u objetos. Para poner a prueba el valor y el tipo de $variable en algún momento de la escritura, el siguiente código se puede utilizar.
1 2 |
$variable = "3 Blind mice" + 39; var_dump($variable); //Mostrará "int(42)" |
Mientras que la función var_dump() permite múltiples variables para su análisis en una llamada, y proporciona información sobre el tamaño de los contenidos de la variable, print_r() proporciona una representación más concisa de arreglos y objetos.
El gettype() simplemente devuelve el tipo de dato de una expresión
1 2 |
$variable = "3 Blind mice" + 39; print(gettype($variable)); //Mostrará "integer" |
El nombre que devuelve gettype() sólo se debe utilizar para información y no para poner a prueba mediante programación.
Para probar mediante programación un tipo variable, se debe utilizar el is_int(), is_float(), is_bool(), is_string(), is_array(), o is_object().
Probar el estado de las variables
Durante la ejecución de un script PHP, una variable puede estar en una situación de no tener un valor o aún no ser definida. PHP proporciona las funciones isset() y el empty() para probar el estado de las variables.
isset() comprueba si una variable se ha establecido con un valor no nulo, mientras que empty() evalua si una variable es igual a false.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$var = 0; if (isset($var)) echo 'Variable is Set'; // Muestra: "Variable is Set" if (empty($var)) echo 'Variable is Empty'; // Muestra: "Variable is Empty" $var = "test"; if (isset($var)) echo 'Variable is Set'; // Muestra: "Variable is Set" if (empty($var)) echo 'Variable is Empty'; // No muestra nada |
Destrucción de variables
Una variable puede ser destruida de forma explícita usando unset()
1 2 3 4 5 6 7 8 |
$var = "foo"; // Destruyendo la variable unset($var); // La variable no existe, y no imprime nada if (isset($var)) echo 'Variable is Set'; |
¿Te gustó este artículo?
Si te gustó este artículo, te ha servido o aprendiste algo nuevo; compártelo en tus redes sociales o invítame un cafe.
Hola buenas tardes a todos.
No se si esta seccion sera la mas indicada para hacer una consulta referente al resultado que recibo despues de realizar un “var_dump”….
Dire que soy nuevo en Linux (Fedora 20) y no controlo muy bien el SO.
RESULTADO DE UN var_dump EN WAMPSERVER-WINDOWS 7.
array (size=6)
‘id’ => string ‘1’ (length=1)
‘nombre’ => string ‘jaime’ (length=5)
’email’ => string ‘[email protected]’ (length=20)
‘contenido’ => string ‘este es otro comentario’ (length=23)
‘fecha’ => string ‘2014-11-21 18:12:16’ (length=19)
‘estado’ => string ‘0’ (length=1)
*********************************************************************
RESULTADO DE UN var_dump EN LAMP-FEDORA 20.
array(6) { [“id”]=> string(2) “17” [“nombre”]=> string(15) “Jaime rodriguez” [“email”]=> string(26) “[email protected]” [“contenido”]=> string(21) “esto es un comentario” [“fecha”]=> string(19) “2014-12-05 21:32:26” [“estado”]=> string(1) “1” }
*****************************************************************************************************
El asunto es que en wamp el resultado aparece ordenado y los datos recibidos de la db en rojo.
y en lamp me aparece todo en una sola linea, entre corchetes y todos los datos en color negro….
Agradeceria cualquier orientacion o aclaracion del porque ocurre esto y si hay alguna solucion para recibir los datos igual que en wamp.
Muchas gracias de antemano, un cordial saludo.
Jaime Rodriguez