zoukankan      html  css  js  c++  java
  • php中var_export与var_dump的区别分析

    一  var_dump的用法

    (PHP 3 >= 3.0.5, PHP 4, PHP 5)
    var_dump -- 打印变量的相关信息
    描述
    void var_dump ( mixed expression [, mixed expression [, ...]] )

    此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

    输出结果:

    二var_export用法

    (PHP 4 >= 4.2.0, PHP 5)
    var_export -- 输出或返回一个变量的字符串表示
    描述
    mixed var_export ( mixed expression [, bool return] )

    此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
    您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
    EG:
    var_export(array('a','b',array('aa','bb','cc'))) 这种与VAR_DUMP没什么区别;

    $var =var_export(array('a','b',array('aa','bb','cc')),TRUE),加上TRUE后,不会再打印出来,而是给了一个变量,这样就可以直接输出;
    echo $var;此时输出来的形式与var_dump()打印的相似。
    EG2

     
    $data = array ('name' => 'abc', 'job' => 'programmer','a'=>array('aa','cc','bb'));
    $data = var_export($data,TRUE);
    echo $data;
    输出形式:

    array (
    'name' => 'abc',
    'job' => 'programmer',
    'a' =>
    array (
    0 => 'aa',
    1 => 'cc',
    2 => 'bb',
    ),
    )

    以下是补充资料:
    error_log(var_export(yblog_mspconfiginit("ratings"),true));
    问题原因
    var_export 必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。而这个变量就会取得和被var_export一样的类型的值。但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL.

    问题发现
    在跟踪yratings_get_targets的时候,

     
    error_log(var_export(yblog_mspconfiginit("ratings"),true));老是打印出yblog_mspconfiginit(“ratings”)的返回是NULL

    导致我以为是无法建立和DB的连接,走错路了一天。

    最后才发现,这是var_export和var_dump的区别之一

    这就是:

    问题原因
    var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值

    但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL

     
    $res = yblog_mspconfiginit("ratings");
    var_dump($res);
    var_export($res);
    结果: 
    resource(1) of type (yahoo_yblog)
     
    $res = fopen('status.html', 'r');
    var_dump($res);
    var_export($res);
    结果:


     
    resource(2) of type (stream)
    NULL

    参考:http://www.jb51.net/article/24624.htm

  • 相关阅读:
    IE11浏览器:请不要再叫我IE,谢谢
    Hadoop HA高可用搭建流程
    YARN
    MapReduce
    HDFS
    shell
    shell总结
    linux总结
    maven+log4j
    Spring
  • 原文地址:https://www.cnblogs.com/xiaoping-2014/p/4979930.html
Copyright © 2011-2022 走看看