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
1 <html> 2 <head> 3 <title></title> 4 </head> 5 <body> 6 <form action="formprocess1.php" method="post"> 7 <table> 8 <tr> 9 <td>Name</td> 10 <td><input type="text" name="name" id="name"/></td> 11 </tr> 12 <tr> 13 <td colspan="2" style="text-aligh:center"> 14 <input type="Submit" name="Submit" value="Submit" /> 15 </td> 16 </tr> 17 </table> 18 </form> 19 </body> 20 </html>
formprocess1.php
1 <html> 2 <head> 3 <title></title> 4 <body> 5 <?php 6 echo '<h1>Hello ' .$_POST["name"]. '!</h1>'; 7 ?> 8 <pre> 9 <strong>DEGUG:</strong> 10 <?php 11 echo($_POST); 12 ?> 13 </pre> 14 </body> 15 </head> 16 </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()输出的信息是最丰富的,所以经常使用这个函数来调试程序。

浙公网安备 33010602011771号