您的位置:首页 > 其它

转载echo print() print_r() var_dump() 的区别

2017-03-11 13:20 148 查看
常见的输出语句

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/ 

本文版权归
87c8
作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址williamningdong@gmail.com  联系我,非常感谢。

  

   #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进制计算的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: