var_dump -- 輸出php
var_export -- 輸出或返回一個變量的字符串表示html
此函數返回關於傳遞給該函數的變量的結構信息,它和 var_dump() 相似,不一樣的是其返回的表示是合法的 PHP 代碼。數組
比較:var_dump 直接輸出,若是 var_export,不設置第2個參數爲true的話,也是直接輸出,輸出和var_dump差很少;函數
可是若是 var_export 第2個參數設置爲true的話,就不會輸出了,而是返回字符串的變量的表示。若是要輸出的話,用echo 如:code
$arr = [1,2,3]; $var = var_export($arr, true); echo $var;
var_dump 只輸出,var_export 不只能夠輸出,還能夠把變量字符串的表示xml
在跟蹤yratings_get_targets的時候,htm
error_log(var_export(yblog_mspconfiginit("ratings"),true));
總是打印出yblog_mspconfiginit(「ratings」)的返回是NULLblog
致使我覺得是沒法創建和DB的鏈接,走錯路了一天。字符串
最後才發現,這是var_export和var_dump的區別之一get
這就是:
問題緣由 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) NULL
再好比:
$res = fopen('status.html', 'r'); var_dump($res); var_export($res);
結果:
resource(2) of type (stream) NULL
var_export,函數的第二個參數設置爲 TRUE,從而返回變量的表示, 不設置第2個參數,效果則和var_dump()同樣,純是輸出.
//將整個文件讀入一個字符串 $xmldata = file_get_contents("php://input"); $xmldata = (array)simplexml_load_string($xmldata); //var_export,函數的第二個參數設置爲 TRUE,從而返回變量的表示 $arr = var_export($xmldata,TRUE); //file_get_contents: 將一個字符串寫入文件。該函數將返回寫入到文件內數據的字節數,失敗時返回FALSE $ret = file_put_contents('output.log', $arr); if (false == $ret) { exit("寫入失敗"); } echo $data;
output.log 內容以下
array ( 'sha1' => '111', 'user_id' => '222', 'album_id' => '333', 'album_name' => '444', 'tags' => '555', 'title' => '666', 'content' => '777', 'type' => '8888', 'copyright' => '9999', )
file_put_content 不能直接將數組寫入文件,而是先把數組變成字符串,再寫入。var_export,第2個參數設置爲true,就是