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 "\n";
echo var_export($str, TRUE);
echo "\n";
echo var_export($bool, TRUE);
echo "\n";
echo var_export($arr, TRUE);
echo "\n";

/*輸出
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\nreturn ".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的緩存文件就是采用這種方式的緩存。

 

  

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM