1. 程式人生 > >轉載echo print() print_r() var_dump() 的區別

轉載echo print() print_r() var_dump() 的區別

常見的輸出語句
echo()

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

print()

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

print_r()

可以把字串和數字簡單地打印出來,而陣列則以括起來的鍵和值得列表形式顯示,並以Array開頭。但print_r()輸出布林值和NULL的結果沒有意義,因為都是列印"\n"。因此用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/ 
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,如有問題,可以通過以下郵箱地址
[email protected]
 聯絡我,非常感謝。
  

   #1樓 2016-05-23 22:40 my筆觸  
學習了,還在糾結用print_r還是var_dump除錯,看來還是用var_dump吧。

   #2樓 2016-08-26 10:52 楊先生1016  
您好,我想問一下
var_dump(08==8)結果返回false,
而var_dump(07==7)結果返回的是true。
這其中涉及到了什麼原理,您能為我講解一下嗎?

   #3樓 2016-08-28 11:43 KoMiles  
@ 楊先生1016
是因為按照8進位制計算的