PHP中几个输出函数echo,print(),print_r(),sprintf(),var_dump()的区别

1:echo:是语句不是函数,没有返回值,可输出多个变量值,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。

2:print:是语句不是函数,有返回值 1 ,只能输出一个变量,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。

3:print_r:是函数,可以打印复合类型,例如:stirng、int、float、array、object等,输出array时会用结构表示,而且可以通过print_r($str,true)来使print_r不输出而返回print_r处理后的值

4:printf:是函数,把文字格式化以后输出(参看C语言)

5:sprintf:是函数,跟printf相似,但不打印,而是返回格式化后的文字(该函数把格式化的字符串写写入一个变量中,而不是输出来),其 他的与printf一样。

例如:

1
2
3
4
1 $str = "Hello";    
2 $number = 123;
3 $txt = sprintf("%s world. Day number %u",$str,$number);
4 //输出: Hello world. Day number 123

6:var_dump():函数,输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。

1
2
3
4
5
6
可以通过function_exists('函数名称')进行测试
1 var_dump(function_exists('print')); //bool(false)
2
3 var_dump(function_exists('echo')); //bool(false)
4
5 var_dump(function_exists('print_r')); //bool(true)