2010-04-21 5 views
2

var_export La fonction provoque une exception alors que l'argument a des références circulaires. Existe-t-il des alternatives (sauf serialize) qui le gèrent correctement?Alternatives à var_export

Répondre

2

Vous cherchez var_dump ou même debug_backtrace

Mise à jour:

Converting object to string

+0

Je souhaite convertir un objet en chaîne. var_dump le sort, je n'en ai pas besoin – darja

+0

@darja: Le seul autre moyen que je connaisse est de le sérialiser (bien que vous le disiez). Voir aussi ma réponse mise à jour. – Sarfraz

+0

Merci pour le lien. Il semble que j'ai deux variantes - serialize (dont je ne veux pas) et json_encode. – darja

2

Vous pouvez essayer ceci:

ob_start(); 
var_dump($var); 
$dump = ob_get_contents(); 
ob_end_clean(); 

Et pourquoi ne pas utiliser la sérialisation?

+0

J'ai besoin d'une telle conversion pour les journaux. Et sérialiser la sortie est trop moche pour les journaux. – darja

0

Cela a fonctionné pour moi:

$backtrace = array_slice(debug_backtrace(0), 0, 6); 

$export = var_export($backtrace, TRUE); 

Vous pourriez avoir besoin de modifier le montant de la tranche afin qu'il coupe la référence circulaire. J'ai eu ce problème en essayant de faire un var_export() sur une exception lors de l'exécution d'un test PHPUnit.