J'ai un objet inconnu dans la page php.
Comment puis-je l'imprimer/échouer, afin de voir quelles propriétés/valeurs il possède ?
Qu'en est-il des fonctions ? Y a-t-il un moyen de savoir quelles sont les fonctions d'un objet ?
J'ai un objet inconnu dans la page php.
Comment puis-je l'imprimer/échouer, afin de voir quelles propriétés/valeurs il possède ?
Qu'en est-il des fonctions ? Y a-t-il un moyen de savoir quelles sont les fonctions d'un objet ?
Pour connaître les propriétés de l'objet, var_dump(object) est le meilleur moyen. Il montrera toutes les propriétés publiques, privées et protégées associées à l'objet sans connaître le nom de la classe.
Mais dans le cas des méthodes, vous devez connaître le nom de la classe, sinon je pense qu'il est difficile d'obtenir toutes les méthodes associées à l'objet.
J'aime vraiment dBug . J'utilise généralement var_dump()
pour les scalaires (int, string, boolean, etc.) et dBug pour les tableaux et les objets.
Capture d'écran de l'objet sur le site officiel :
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
4 votes
(@Brad Lowry veut partager quelque chose avec vous. J'ai copié son texte littéralement, sans avoir contribué de quelque manière que ce soit à son contenu) : Il y a sont deux différences entre
print_r()
yvar_dump()
.var_dump()
peut prendre plusieurs$expression
paramètres (pas de problème). Cependant,print_r()
a un paramètre facultatif$return
qui a la valeur FALSE par défaut, mais peut être définie à TRUE, ce qui fait que la fonction "renvoie" le résultat plutôt que de simplement l'exprimer. Cela peut s'avérer très utile si vous souhaitez collecter les données de la fonctionprint_r()
et l'exprime ensuite dans un "bloc" de développement au bas de votre sortie.0 votes
@varocarbas, "mais peut être mis à VRAI" <-- thx pour cela.
0 votes
@Coisox Honnêtement, je ne me souviens même pas des raisons exactes pour lesquelles j'ai écrit cela (je suppose que quelqu'un sans réputation suffisante a essayé de partager ces idées en postant une nouvelle réponse, que j'ai supprimée dans le cadre de mes fonctions de modération), mais il est clair que vous devriez remercier Brad Lowry plutôt que moi. Même sans me souvenir de ce moment exact et en ignorant ma référence claire à l'auteur réel, je peux vous dire que je n'ai écrit aucune partie de ce texte avec certitude.
0 votes
L'utilisation du deuxième argument facultatif est incroyable ! Pour un objet $product dans une boutique en ligne, je peux maintenant utiliser
print_r($products,True)
au lieu deget_object_vars($product)
dans la journalisation de débogage viaerror_log(...,0)
. Et on obtient en plus les valeurs clés des variables de l'objet, qui sont organisées sous forme de tableau associatif dans mon cas. Je me demandais pourquoi print_r($product) retournait 1 comme résultat. Merci beaucoup à Brad Lowry !0 votes
Une astuce lors de l'utilisation de print_r pour le débogage : Utilisez-le toujours avec le deuxième argument spécifié comme vrai pour éviter les erreurs. Par exemple
error_log("print_r(\$product) = ".print_r($product),0);
a provoqué une erreur dans un connecteur script dans mon cas, alors queerror_log("print_r(\$product,true) = ".print_r($product,true),0);
était bien. (Et a également donné le résultat souhaité :-)