PHP ---- var_dump(),echo,print_r()的区别

在php开发时,我们经常要调试代码,而最常用的方法就是通过输出变量的值,来判断程序是否运行正确。在php中,最常用的三个输出语句便是var_dump(),echo,print_r()。这三个语句都可用来输出,然而它们之间的作用还是有区别的。


var_dump()

var_dump(expression)函数的输出结果<变量类型,变量值,变量长度>,参数expression表示各种变量类型,作用是输出一个变量的详细信息。

$student = array(
            'name'=>'frank',
             'age'=>'12',
             'height'=>'170',
             'weight'=>'54'
        );
        var_dump($student);

例如:这里定义了一个数组变量,然后用var_dump把它输出,可以看到输出的数据为

array (size=4)
  'name' => string 'frank' (length=5)
  'age' => string '12' (length=2)
  'height' => string '170' (length=3)
  'weight' => string '54' (length=2)

从这里看出来var_dump输出的变量,有变量的类型,变量的值,以及变量的长度。另外var_dump()还有一个与echo不同的地方是var_dump可以输出对象,echo 输出对象时会报错。
例子:
定义一个Courese类,定义公有属性 name,time, teacher

class Course {
    public $name; //课程名称
    public $time; //课程时长
    public $teacher; //授课老师
} 

先new一个对象,然后给这个对象赋值,并输出这个对象。

 $course = new Course();
        $course->name = '计算机网络';
        $course->teacher = '李老师';
        $course->time = '2小时';
        var_dump($course);

可以看到输出的数据为:

object(backend\models\Course)[87]
  public 'name' => string '计算机网络' (length=15)
  public 'time' => string '2小时' (length=7)
  public 'teacher' => string '李老师' (length=9)

如果我们用echo来输出这个对象,页面会提示如下信息:
这里写图片描述
这是因为echo输出时会将数据转化为string类型输出,显然这里对象不能转化string输出,所以就报错了。


print_r()

print_r(expression)的作用是输出一个数组,实际上参数expression的类型可为数值变量和引用变量。
同样我们还是引用上面的类,然后new一个对象,接着用print_r去输出它,结果为:

backend\models\Course Object ( [name] => 计算机网络 [time] => 2小时 [teacher] => 李老师 )

从这里可以看出print_r将其作为数组输出,但是和var_dump不同的一点是print_r只能输出属性的值,而var_dump显示的信息更多。


echo

echo 用于输出数值变量或者是字符串。但使用echo来输出引用变量时,如数组,仅输出数组的名字;当输出一个对象时,服务器提示之类的错误。
同样的我们定义一个变量

 $grades = 100;
 echo $grades;

打印出来的内容就只有100。

小结:一般我们在调试时,通常会选择用var_dump来输出变量的值,因为显示的信息更全。我们通常用echo来做传值使用,比如说将后台的传过来的值接收在前台显示。print_r()通常用来作为数组输出使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值