我经常使用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()

格式化的输出,