web-dev-qa-db-fra.com

error_log () sortie pour print_r () figurant sur la page

J'essaie de déboguer un plugin et j'utilise error_log() dans différents endroits pour voir ce que sont différentes choses. J'utilise les éléments suivants:

error_log( print_r( $variable ) );

Lorsque je regarde debug.log, tout ce que je vois est 1 et la sortie réelle de la fonction error_log() est plutôt envoyée au navigateur.

Je sais qu'un autre plugin ne le fait pas car tous sont désactivés à l'exception de celui que j'écris et dans mon wp-config.php, je définis WP_DEBUG_DISPLAY par false.

La même chose se produit si j'utilise aussi var_dump() et var_export(). D'autres fonctions comme gettype() et autres fonctionnent très bien.

Un moyen de récupérer la sortie dans debug.log?

3
Cedon

Le print_r function accepte le second paramètre pour return afin de renvoyer la variable au lieu de l’imprimer.

print_r($expression, $return)

Donc tu peux faire

error_log( print_r( $variable, true ) );
6
Shibi

Si votre variable est simplement une chaîne, vous pouvez simplement utiliser error_log ( $variable ). S'il s'agit d'un objet ou d'un tableau, autre que d'utiliser print_r(), vous pouvez aussi le sérialiser:

error_log ( serialize ( $variable ) );
1
Jack Johansson