首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP var_export 與 var_dump 差異詳解

     編輯:PHP 相關知識

功能定位不同

  • var_export:輸出合法的 PHP 程式碼,可直接作為程式碼賦值給變數,適合快取、匯出設定檔。
  • var_dump:輸出變數結構資訊(型別、長度、值),適合除錯觀察資料結構。

var_export 特性與限制

回傳可執行的 PHP 代碼字串(第二參數 true 時),但 resource 型別會回傳 NULL,因為資源無法序列化為程式碼。

$res = fopen('test.txt', 'r');
var_dump($res);     // resource(3) of type (stream)
var_export($res);   // NULL

實務應用:快取陣列資料

class ConfigCache {
    private $filePath;

    public function __construct($path) {
        $this->filePath = $path;
    }

    // 寫入快取:var_export 產生可 include 的 PHP 檔案
    public function save(array $data) {
        $code = '<?php return ' . var_export($data, true) . ';?>';
        file_put_contents($this->filePath, $code);
    }

    // 讀取快取
    public function load() {
        if (file_exists($this->filePath)) {
            return include $this->filePath;
        }
        return [];
    }
}

// 使用範例
$cache = new ConfigCache(__DIR__ . '/config_cache.php');
$cache->save(['app_id' => 123, 'secret' => 'abc']);
$config = $cache->load();

var_dump 除錯技巧

配合 <pre> 標籤輸出易讀格式;或用輸出控制函數捕獲內容:

ob_start();
var_dump($complexData);
$debugInfo = ob_get_clean();
// 寫入日誌或顯示於頁面
echo '<pre>' . htmlspecialchars($debugInfo) . '</pre>';

var_dump vs print_r

特性var_dumpprint_r
顯示型別是否
顯示長度/大小是部分
支援多參數是否
輸出可作為程式碼否否

結語

除錯用 var_dump,資料匯出/快取用 var_export,兩者互補,善用能大幅提升開發效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved