echo 是语句不是函数,没有返回值,因此不能作为表达式的一部分使用。
    echo 可输出多个变量值,不需要圆括号。
    echo 不能输出数组和对象,只能打印简单类型,如 intstring 等。

    print 是语句不是函数,有返回值 true/false ,只能输出一个变量,不需要圆括号。
    print 不能输出数组和对象,只能打印简单类型,如 intstring 等。

    print_r() 是函数,可以打印复合类型,如: stringintfloatarrayobject 等。
    print_r() 输出 array 时会用结构表示,而且可以用过 print($str, true) 来使 print_r 不输出而返回 print_r 处理后的值。
    print_r() 输出布尔值和 NULL 的结果没有意义,因为都是打印 \n

    var_dump() 判断一个变量的类型和长度,并输出变量的数值,适合调试使用。