【问题标题】:Alternatives to var_exportvar_export 的替代品
【发布时间】:2013-08-17 06:00:39
【问题描述】:

var_export 函数在参数具有循环引用时导致异常。有没有可以正确处理它的替代方案(serialize 除外)?

【问题讨论】:

    标签: php


    【解决方案1】:

    你可以试试这个:

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

    为什么你不能使用序列化?

    【讨论】:

    • 我需要这样的日志转换。而且序列化输出对于日志来说太丑陋了。
    【解决方案2】:

    您在寻找 var_dump 还是 debug_backtrace

    更新:

    Converting object to string

    【讨论】:

    • 我想将对象转换为字符串。 var_dump 输出,我不需要这个
    • @darja:我知道的唯一其他方法是序列化它(尽管你说除了它)。也请参阅我的更新答案。
    • 感谢您的链接。听起来我有两个变体 - 序列化(我不想要)和 json_encode。
    【解决方案3】:

    这对我有用:

     $backtrace = array_slice( debug_backtrace( 0 ), 0, 6);
    
     $export = var_export( $backtrace, TRUE );
    

    您可能需要调整切片数量,以消除循环引用。我在运行 PHPUnit 测试时尝试对异常执行 var_export() 时遇到了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2012-01-25
      • 2015-08-05
      • 2011-01-01
      • 2011-10-24
      • 2011-05-31
      相关资源
      最近更新 更多