Cuando estás depurando código PHP, puede ser útil examinar el estado de tu código en un momento específico. Esto puede ayudarte a entender qué está sucediendo en tu código e identificar cualquier problema que pueda estar causando dificultades.
Veamos algunas formas de examinar el estado de tu código PHP usando funciones integradas de PHP.
Usar error_log() para registrar mensajes
Como se explicó en la lección sobre las opciones de depuración integradas de WordPress, puedes usar la función error_log() para registrar mensajes en el archivo debug.log de WordPress.
Esto puede ser útil para fines de depuración, ya que te permite ver qué está sucediendo en tu código sin mostrarlo en la pantalla.
La función error_log() no es específica de WordPress; es una función de PHP que puedes usar en cualquier código PHP para registrar mensajes en el archivo de registro de errores de PHP configurado en el servidor.
Sin embargo, una vez que habilites las opciones de depuración específicas de WordPress en tu archivo wp-config.php, todo lo que se pase a error_log() se registrará en el archivo debug.log de WordPress.
error_log( $some_variable );
Esto registrará el valor de $some_variable en el archivo debug.log, para que puedas ver qué contiene en ese punto de tu código.
El beneficio de usar error_log() es que te permite registrar mensajes en un archivo sin mostrarlos en la pantalla. Si los muestras en pantalla, especialmente en un entorno de producción, corres el riesgo de exponer información confidencial a los usuarios.
A veces también es más rápido poder ver el resultado en un archivo de registro, en lugar de tener que buscarlo en una larga lista de resultados en la pantalla.
Usar print_r()
Otra función útil para examinar el estado de tu código PHP es print_r(). Esta función muestra el valor de una variable, matriz u objeto en un formato legible para los humanos, para que puedas ver qué contiene.
Observa este ejemplo de código PHP.
$some_array = array( 'apple', 'banana', 'cherry' );
print_r( $some_array );
Este código mostrará lo siguiente en la pantalla:
Array ( [0] => apple [1] => banana [2] => cherry )
Los desarrolladores suelen envolver print_r() en etiquetas <pre> para facilitar la lectura del resultado.
echo '<pre>';
print_r( $some_array );
echo '</pre>';
Esto mostrará lo siguiente en la pantalla:
Array
(
[0] => apple
[1] => banana
[2] => cherry
)
Observa que, de forma predeterminada, print_r() muestra el valor de la variable, pero no lo devuelve. Si quieres usar el resultado de print_r() con error_log(), debes establecer el segundo parámetro en true.
error_log( print_r( $some_array, true ) );
Esto registrará el resultado de la llamada a print_r en el archivo debug.log, para que puedas ver qué contiene $some_array en ese punto de tu código.
Usar var_dump()
La función var_dump() es otra función útil para examinar el estado de tu código PHP. Esta función muestra el valor de una variable, matriz u objeto en un formato legible para los humanos, junto con información adicional sobre el tipo y la longitud de la variable.
Observa este ejemplo de código PHP.
$some_array = array( 'apple', 'banana', 'cherry' );
echo '<pre>';
var_dump( $some_array );
echo '</pre>';
Este código mostrará lo siguiente en la pantalla:
array(3) {
[0]=>
string(5) "apple"
[1]=>
string(6) "banana"
[2]=>
string(6) "cherry"
}
Observa que var_dump() muestra el valor de la variable, junto con información adicional sobre el tipo y la longitud de la variable. Esto puede ser útil para fines de depuración, ya que proporciona información más detallada sobre la variable que print_r().
A diferencia de print_r(), var_dump() no tiene una opción para devolver el resultado a una variable, por lo que no puedes usarlo directamente con error_log().
Sin embargo, puedes usar algo llamado almacenamiento en búfer de salida para capturar el resultado de var_dump() y luego registrarlo en el archivo debug.log.
$some_array = array( 'apple', 'banana', 'cherry' );
ob_start();
var_dump( $some_array );
$output = ob_get_clean();
error_log( $output );
Los desarrolladores suelen usar este tipo de código en una función de registro especial, para poder usar var_dump y error_log conjuntamente.
function log_var_dump( $variable ) {
ob_start();
var_dump( $variable );
$output = ob_get_clean();
error_log( $output );
}
Lecturas adicionales
Para obtener más información sobre las funciones mencionadas en esta lección, consulta las siguientes páginas de la documentación de PHP: