zoukankan      html  css  js  c++  java
  • PHP返回变量或数组的字符串表示:var_export()

    使用var_export()函数可以在服务端程序没有在打印的情况下,配合file_put_contents方便的调试程序,查看变量和数组的内容。

      在开发过程中,我们常用var_dump()来打印数组内容,但有时候我们不方便通过浏览器查看调试信息,这时候可以将信息输出到文件中查看,var_export()可以打印或返回变量的字符串表示,返回值是一个字符串,形式类似var_dump()打印的字符串,使用var_export()可以将POST、GET和SESSION等数据写入文件,方便查看。

      下面是php文档中的描述:

    mixed var_export ( mixed $expression [, bool $return ] )

    此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。

    您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。 

      

    简而言之,第二个参数为TRUE时,有返回值,不打印;为FALSE时,打印变量,默认为FALSE

      下面的示例使用var_export()将变量转换成字符串后输出:

    复制代码
    <?php
    $num = 255;
    $str = 'abc def';
    $bool = true;
    $arr = array('value1', 'value2', 1, 'key1'=>'value3', 'key2'=>array(2, 3));
    echo var_export($num, TRUE);
    echo "
    ";
    echo var_export($str, TRUE);
    echo "
    ";
    echo var_export($bool, TRUE);
    echo "
    ";
    echo var_export($arr, TRUE);
    echo "
    ";
    
    /*输出
    255
    'abc def'
    true
    array (
      0 => 'value1',
      1 => 'value2',
      2 => 1,
      'key1' => 'value3',
      'key2' =>
      array (
        0 => 2,
        1 => 3,
      ),
    )
    复制代码

      var_export()返回的是合法的php代码,非常方便生成配置文件或缓存文件,下面用简单的缓存文件示例来讲一下:

    复制代码
    <?php
    //$cache的值是更新缓存时从数据库中取出来的
    $cache = array(
        'LOG_RECORD'            =>  false,
        'LOG_TYPE'              =>  'File', 
        'LOG_LEVEL'             =>  'EMERG,ALERT,CRIT,ERR',
        'LOG_FILE_SIZE'         =>  2097152,
        'LOG_EXCEPTION_RECORD'  =>  false,
    ); 
    
    //将从数据库中读到的数据写入缓存文件
    $content = "<?php
    return ".var_export($cache);    //这里使用var_export()
    file_put_contents('./cache.php', $content);
    复制代码

      我们的缓存文件cache.php内容如下:

    复制代码
    <?php
    return array(
        'LOG_RECORD'            =>  false,
        'LOG_TYPE'              =>  'File', 
        'LOG_LEVEL'             =>  'EMERG,ALERT,CRIT,ERR',
        'LOG_FILE_SIZE'         =>  2097152,
        'LOG_EXCEPTION_RECORD'  =>  false,
    ); 
    复制代码

      调用缓存文件的时候只需要使用require()即可将缓存文件的内容复制给一个变量:

    <?php
    $cache = require('./cache.php');

      缓存文件中的数组赋值给了$cache变量,phpcms的缓存文件就是采用这种方式的缓存。

  • 相关阅读:
    【容斥】Four-tuples @山东省第九届省赛 F
    【树形dp入门】没有上司的舞会 @洛谷P1352
    【贪心】LIS @The 15th Zhejiang Provincial Collegiate Programming Contest E
    【map离散&容斥】Ghosts @Codeforces Round #478 (Div. 2) D
    PCA & whitening
    Autoencoders and Sparsity(二)
    Autoencoders and Sparsity(一)
    Regularized logistic regression
    Regularization —— linear regression
    Logistic Regression and Newton's Method
  • 原文地址:https://www.cnblogs.com/jianmingyuan/p/8473591.html
Copyright © 2011-2022 走看看