资讯专栏INFORMATION COLUMN

PHP:echo、print、print_r() 和 var_dump()

mochixuan / 1367人阅读

摘要:和和和都不是函数,而是语言结构,所以圆括号都不是必需的。两者十分相似,功能几乎是完全一样。如果给出的是,将会按照一定格式显示键和元素。方法是判断一个变量的类型与长度,并输出变量的值和数据类型。此时将不打印结果,而是返回其输出。

PHP:echo、print、print_r 和 var_dump

echo 和 print

echoprint 都不是函数,而是 语言结构,所以圆括号都不是必需的。两者十分相似,功能几乎是完全一样。

1、echo 可以输出多个字符串,使用 , 连接

echo "a","b","c";

输出:abc

如果你非要加上圆括号,需要注意

echo ("a","b","c");      //错误
echo ("a"),("b"),("c");  //正确

2、print 只能输出一个字符串

print "a","b","c";  //错误
print "abc";        //正确
print "a"."b"."c";  //正确

注意:上面的 "a"."b"."c" 并不是多个字符串,而是 PHP 中拼接(concat)多个字符串后的一个字符串。

3、echo 没有返回值,print 有返回值 1

因此 print 能用在表达式中:

$ret = print "abc";
echo $ret + 1;

输出:abc2

4、echo 输出的速度比 print 快

print_r() 和 var_dump()

print_r() 显示关于一个变量的易于理解的信息。如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。

print_r() 会舍弃掉小数位末尾的 “0”;布尔值 true 输出 1,false 不输出;空字符串 和 null 不输出。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。

var_dump() 方法是判断一个变量的类型与长度,并输出变量的值和数据类型。var_dump() 输出比 print_r() 更详细,一般调试时用得多。两者区别如下:

$arr = array(5, 5.0, "hello", "", true, false, null);
var_dump($arr);
print_r($arr);

输出:

array(7) {
  [0]=>
  int(5)
  [1]=>
  float(5)
  [2]=>
  string(5) "hello"
  [3]=>
  string(0) ""
  [4]=>
  bool(true)
  [5]=>
  bool(false)
  [6]=>
  NULL
}
Array
(
    [0] => 5
    [1] => 5
    [2] => hello
    [3] => 
    [4] => 1
    [5] => 
    [6] => 
)

题外:如果想捕捉 print_r() 的输出,可添加一个 true 参数。此时 print_r() 将不打印结果,而是返回其输出。

$str = "hello";
$result = print_r($str, true);
echo $result;

输出:hello

参考

php.net: print_r

stackoverflow: What"s the difference between echo, print, and print_r in PHP?

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21781.html

相关文章

  • PHP学习记录(数组函数)

    摘要:数组中的数组是一个有序映射,映射是一种把关联到的类型,数组可以接受任意数量用逗号分隔符的键值对。 数组 php中的数组是一个有序映射,映射是一种把values关联到keys的类型,数组可以接受任意数量用逗号分隔符的键值对。 数组的介绍 /* * php中数组可以分为: * 索引数组:下标是数字 * 关联数组:下标是字符串 * 注:php中数组其实不区分索引还是关联数组,都是根据...

    frontoldman 评论0 收藏0
  • PHP学习记录(数据类型)

    摘要:包含有合法整型值的字符串会被转换为整型如会被转换为,但是不能转换为浮点数会被转换为整型,意味着小数部分会被舍去。说明一个参数可以接受多种不同的但不一定是所有的类型。 PHP数据类型 PHP支持八种原始的数据类型: showImg(https://segmentfault.com/img/bVbbDN4?w=634&h=301); 布尔型 /* * boolean:TRUE FALS...

    yeooo 评论0 收藏0
  • PHP 那些“坑”

    摘要:中文乱码河北省广东省河北省省河北广东省省广省的十六制作表示是,而东的十六进制表示是,都出现了,哦正因为是,所以广东省省的时候把东的十六进制表示的最后一位也被掉了。 本文持续更新,欢迎关注 字符串 == 比较类型强转隐患 // php 5 var_dump(md5(240610708) == md5(QNKCDZO));//bool(true) var_dump(md5(aabg7XSs...

    NicolasHe 评论0 收藏0
  • PHP 那些“坑”

    摘要:中文乱码河北省广东省河北省省河北广东省省广省的十六制作表示是,而东的十六进制表示是,都出现了,哦正因为是,所以广东省省的时候把东的十六进制表示的最后一位也被掉了。 本文持续更新,欢迎关注 字符串 == 比较类型强转隐患 // php 5 var_dump(md5(240610708) == md5(QNKCDZO));//bool(true) var_dump(md5(aabg7XSs...

    Yumenokanata 评论0 收藏0
  • PHP 那些“坑”

    摘要:中文乱码河北省广东省河北省省河北广东省省广省的十六制作表示是,而东的十六进制表示是,都出现了,哦正因为是,所以广东省省的时候把东的十六进制表示的最后一位也被掉了。 本文持续更新,欢迎关注 字符串 == 比较类型强转隐患 // php 5 var_dump(md5(240610708) == md5(QNKCDZO));//bool(true) var_dump(md5(aabg7XSs...

    huhud 评论0 收藏0

发表评论

0条评论

mochixuan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<