var_export 和 var_dump對Resource類型的區別

· 作者:laruence(http://www.laruence.com/)
· 本文地址: http://www.laruence.com/2008/04/03/15.html
· 轉載請註明出處

問題發現

在跟蹤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) 
NULL

再比如
:

$res = fopen('status.html', 'r');
var_dump($res);
var_export($res);

結果
:

resource(2) of type (stream)
NULL


 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章