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

PHP 輸出函數完整比較:echo、print、print_r、sprintf、var_dump、var_export 差異與適用場景

     編輯:PHP 綜合知識

PHP 提供多種輸出/檢視函數,各有回傳值、參數數量、格式化能力、用途差異。正確選用可提升開發除錯效率。

快速對照表

函數類型參數數量回傳值主要用途輸出格式
echo語言結構多個 (逗號分隔)無一般字串輸出原始字串
print語言結構單一int (永遠 1)簡單輸出、可用於表達式原始字串
print_r函數1-2 (第2個 bool $return)bool/string陣列/物件結構檢視 (人類可讀)縮排樹狀結構
var_dump函數1 到多個無詳細型別+值檢視 (除錯)型別+長度+值
var_export函數1-2 (第2個 bool $return)string/NULL輸出合法 PHP 程式碼 (可 eval 還原)PHP 代碼格式
sprintf函數格式字串 + 多參數string格式化字串產生 (不直接輸出)依格式字串

詳細說明與範例

echo / print

<?php
echo 'Hello', ' ', 'World'; // 多參數,無回傳
print 'Hello World';        // 單參數,回傳 1
// print 可用於複雜表達式
$flag = (print 'test') && true; // $flag = true

print_r

<?php
$arr = ['a'=>'apple', 'b'=>'banana', 'c'=>['x','y','z']];
print_r($arr);
/* 輸出:
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
*/
// 取得字串而不輸出
$str = print_r($arr, true);
  • 會將陣列指標移至末尾,後續 foreach 需先 reset()。
  • 遞迴參考會無限迴圈 (PHP 4.0.4+ 已改善)。

var_dump

<?php
$arr = [1, 2, ['a','b','c']];
var_dump($arr);
/* 輸出:
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}
*/
  • 顯示型別、長度、值,適合精確除錯。
  • 可用輸出控制函數 (ob_start()) 捕獲輸出。

var_export

<?php
$a = [1, 2, ['a','b','c']];
var_export($a);
/* 輸出:
array (
  0 => 1,
  1 => 2,
  2 => 
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
*/
// 取得字串
$code = var_export($a, true);
// 可直接 eval 還原
eval('$restored = ' . $code . ';');
  • 輸出合法 PHP 代碼,適合產生快取檔、設定檔。
  • 資源型別 會輸出 NULL (無法序列化)。

sprintf

<?php
$num = 3.14159;
echo sprintf('Pi ≈ %.2f', $num); // Pi ≈ 3.14
// 類似 C 語言 printf,支援 %d %s %f %x %b 等格式

選擇指南

  • 一般輸出:echo (效能最好)。
  • 需回傳值用於表達式:print。
  • 除錯檢視陣列/物件結構:var_dump (最詳細) 或 print_r (較簡潔)。
  • 產生可執行 PHP 代碼/快取:var_export。
  • 格式化字串 (數字精度、填零、進制):sprintf/printf。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved