轉載echo print() print_r() var_dump() 的區別
阿新 • • 發佈:2019-02-01
常見的輸出語句
echo()
判斷一個變數的型別與長度,並輸出變數的數值,如果變數有值輸的是變數的值並回返資料型別。此函式顯示關於一個或多個表示式的結構資訊,包括表示式的型別與值。陣列將遞迴展開值,通過縮排顯示其結構。
看下面的程式碼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 !
Hello !
DEGUG:
Array
(
[name] =>
[Submit] => Submit
)
使用var_dump()輸出的結果是:
Hello !
DEGUG:
array(2) {
["name"]=>
string(0) ""
["Submit"]=>
string(6) "Submit"
作者: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進位制計算的
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/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,如有問題,可以通過以下郵箱地址
#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進位制計算的