我经常使用echo和print_r,几乎从不使用print。
我觉得echo是一个宏,而print_r是var_dump的别名。
但这不是解释差异的标准方式。
我经常使用echo和print_r,几乎从不使用print。
我觉得echo是一个宏,而print_r是var_dump的别名。
但这不是解释差异的标准方式。
当前回答
只是为了补充John的回答,echo应该是您用于将内容打印到页面的唯一一个。
打印速度稍慢。Var_dump()和print_r()应该只用于调试。
另外值得一提的是,print_r()和var_dump()将默认回显,为print_r()添加第二个参数,至少该参数的值为true,以使其返回,例如print_r($array, true)。
echo和return的区别是:
echo:将立即将值打印到输出。 返回:将函数的输出作为字符串返回。对日志记录等有用。
其他回答
打印和回声或多或少是相同的;它们都是显示字符串的语言结构。两者的区别很细微:print的返回值为1,因此可以在表达式中使用,而echo的返回类型为void;Echo可以接受多个参数,尽管这种用法很少见;Echo比print稍快。(就我个人而言,我总是使用echo,从不打印。)
Var_dump打印变量的详细转储,包括变量的类型和任何子项的类型(如果它是数组或对象)。Print_r以更易于阅读的形式打印变量:字符串不加引号,类型信息被省略,数组大小没有给出,等等。
根据我的经验,在调试时,Var_dump通常比print_r更有用。当你不知道变量中有什么值/类型时,它特别有用。考虑这个测试程序:
$values = array(0, 0.0, false, '');
var_dump($values);
print_r ($values);
使用print_r,你不能区分0和0.0,或者false和":
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
它们都是语言结构。Echo返回void, print返回1。Echo被认为比print稍快。
Echo: Echo是一种不需要使用括号的语言构造,它可以接受任意数量的参数并返回void。
void echo (param1,param2,param3.....);
Example: echo "test1","test2,test3";
Print:这是一种不需要使用括号的语言结构,它只接受一个参数并返回
1 always.
int print(param1);
print "test1";
print "test1","test2"; // It will give syntax error
prinf:这是一个函数,它至少接受一个字符串和格式化样式,并返回输出字符串的长度。
int printf($string,$s);
$s= "Shailesh";
$i= printf("Hello %s how are you?",$s);
echo $i;
Output : Hello Shailesh how are you?
27
echo returns void so its execution is faster than print and printf
回音:
它是语句而不是函数 没有返回值
不需要括号
非打印数组
打印
它是实函数
返回类型1
需要括号
非打印数组
Print_r
以人类可读的格式打印
字符串不加引号
不是变量的详细信息,如类型和所有
var_dump
所有变量的转储信息 比如元素和子元素的类型
echo
没有返回类型
print
有返回类型
print_r()
格式化的输出,