调试代码的时候用print_r(),因为他可以把对象、数组都可以打印出来

echo是php语句,没有返回值。其他三个都是函数,可以有返回值

=================================================================

以下是一些资料

echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)  

print只能打印出简单类型变量的值(如int,string)  

print_r可以打印出复杂类型变量的值(如数组,对象)  


echo -- 输出一个或者多个字符串  

Description  

void echo ( string arg1 [, string ...] ) //返回值为空  

echo "你好"," 朋友";  



print --输出一个字符串  

Description  

int print ( string arg )//返回值为×××  

print "你好朋友";  


可以进行下面操作  

$name=print "nihao \n";  

$str = 'test print value is $name .';  

eval("$print=\"$str\";");  

echo $print;  


print_r -- 打印关于变量的易于理解的信息。  

bool print_r ( mixed expression [, bool return] ) //返回值是布尔型的,参数是mix类型的,可以是字符串,×××,数组,对象类print_r() 显示关于一个变量的易于理解的信息。如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。  

print_r() 将把数组的指针移到最后边。  

你可以  

print_r(str);  

print_r(int);  

print_r(array);  

print_r(obj);  

也可以用var_dump var_export



printf()
printf()源于C语言中的printf()。该函数输出格式化的字符串。
语法: printf(format,arg1,arg2,arg++)
format   规定字符串以及如何格式化其中的变量;
arg1, arg2, ++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的。在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
Example:
<?php
$str = "Hello";
$number = 123;
printf("%s world. Day number %u",$str,$number);
?>
#Results======
Hello world. Day number 123

如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 "\$" 组成。请参见例子 3。
Example:
<?php
$number = 123;
printf("With 2 decimals: %1\$.2f<br />With no decimals: %1\$u",$number);
?>
#Result
With 2 decimals: 123.00
With no decimals: 123