var_export的替代方案

5

var_export函数在参数存在循环引用时会导致异常。除了serialize之外,还有没有其他可以正确处理的替代方法?

3个回答

3
你可以尝试这个方法:
ob_start();
var_dump($var);
$dump = ob_get_contents();
ob_end_clean();

为什么不能使用序列化?

我需要对日志进行这样的转换。而且序列化输出对于日志来说太丑了。 - darja

2

我想将对象转换为字符串。var_dump会输出它,但我不需要这个。 - darja
@darja:我知道的另一种方法是将其序列化(尽管你说除了它)。请查看我的更新答案。 - Sarfraz
谢谢提供链接。听起来我有两个选择 - 序列化(我不想要)和json_encode。 - darja

0
这对我有用:
 $backtrace = array_slice( debug_backtrace( 0 ), 0, 6);

 $export = var_export( $backtrace, TRUE );

你可能需要调整切片大小,以便削除循环引用。我在运行 PHPUnit 测试时尝试对异常进行 var_export() 时遇到了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接