echoprint()print_r()var_dump()的區別

ndblog發表於2014-05-01

常見的輸出語句

echo()
可以一次輸出多個值,多個值之間用逗號分隔。echo是語言結構(language construct),而並不是真正的函式,因此不能作為表示式的一部分使用。

print()
函式print()列印一個值(它的引數),如果字串成功顯示則返回true,否則返回false。

print_r()
可以把字串和數字簡單地列印出來,而陣列則以括起來的鍵和值得列表形式顯示,並以Array開頭。但print_r()輸出布林值和NULL的結果沒有意義,因為都是列印”
“。因此用var_dump()函式更適合除錯。

var_dump()
判斷一個變數的型別與長度,並輸出變數的數值,如果變數有值輸的是變數的值並回返資料型別。此函式顯示關於一個或多個表示式的結構資訊,包括表示式的型別與值。陣列將遞迴展開值,通過縮排顯示其結構。

看下面的程式碼form1.php

<html>
    <head>
        <title></title>
    </head>
    <body>
        <form action="formprocess1.php" method="post">
        <table>
            <tr>
                <td>Name</td>
                <td><input type="text" name="name" id="name"/></td>
            </tr>
            <tr>
                <td colspan="2" style="text-aligh:center">
                <input type="Submit" name="Submit" value="Submit" />
                </td>
            </tr>
        </table>
        </form>
    </body>
</html>

formprocess1.php

<html>
    <head>
        <title></title>
        <body>
        <?php
        echo `<h1>Hello ` .$_POST["name"]. `!</h1>`;
        ?>
        <pre>
        <strong>DEGUG:</strong>
        <?php
        echo($_POST);
        ?>
        </pre>
        </body>
    </head>
</html>

使用echo輸出的結果是:

Hello !

		DEGUG:
		Array	

 

使用print()輸出的結果是:

Hello !

		DEGUG:
		Array

使用print_r()輸出的結果是:

Hello !

		DEGUG:
		Array
(
    [name] => 
    [Submit] => Submit
)

使用var_dump()輸出的結果是:

Hello !

		DEGUG:
		array(2) {
  ["name"]=>
  string(0) ""
  ["Submit"]=>
  string(6) "Submit"
}

我們可以看到var_dump()輸出的資訊是最豐富的,所以經常使用這個函式來除錯程式。

作者:Tyler Ning

出處:http://www.cnblogs.com/tylerdonet/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,如有問題,可以通過以下郵箱地址williamningdong@gmail.com
 聯絡我,非常感謝。


相關文章