A. Cedano Asked: 2020-05-25 05:18:45 +0800 CST 2020-05-25 05:18:45 +0800 CST 2020-05-25 05:18:45 +0800 CST PHP 中的 echo、print、print_r、var_dump 和 var_export 有什么区别? 772 功能明确吗? echo print print_r var_dump是 var_export 它们几乎可以互换使用,将内容打印到屏幕上。 这个问题的目的是有一个好的答案作为参考,以了解他们每个人之间可能存在的差异......如果有差异。 php 2 Answers Voted Best Answer Jorius 2020-05-25T05:34:26+08:002020-05-25T05:34:26+08:00 我喜欢你的问题,我在英文网站上找到了一个相关的,你可以在这里看看,我会花时间翻译上面提到的问题中投票最高的部分答案,让我们开始吧: 扔出去 返回一个或多个用逗号分隔的字符串 没有返回值 例子: echo "Cadena 1", "Cadena 2"; 打印 只显示一个简单的字符串 返回1,因此可以在表达式中使用 例子: print "Hello"; if($expresion && print "Cadena"){ // Hacer algo } 打印_r() 显示任何单个值的更易于理解的表示 它不仅接受字符串,还接受数组和对象,将它们格式化为以更易于理解的方式显示。 如果将其true作为第二个参数传递,则可以将其输出值作为返回值返回 对调试很有用 示例:如果我们有以下安排: $a = array ('a' => 'manzana', 'b' => 'banana', 'c' => array ('x', 'y', 'z')); print_r ($a); 我们print_r($a);将返回如下内容: Array ( [a] => manzana [b] => banana [c] => Array ( [0] => x [1] => y [2] => z ) ) var_dump() 返回以逗号分隔的任何一个或多个值的更易于理解的表示 它不仅接受字符串,还接受数组和对象,将它们格式化为以更易于理解的方式显示。 使用与前一种不同的格式print_r(),例如,它还显示值的类型 对调试很有用 没有返回值 示例:如果我们有以下安排: $a = array(1, 2, array("a", "b", "c")); var_dump($a); 我们var_dump($a);将返回如下内容:(请注意,它向我们显示了数组中每个元素的值类型) array(3) { [0]=> int(1) [1]=> int(2) [2]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } } var_export() 显示任何值的更易于理解和可执行的表示 它不仅接受字符串,还接受数组和对象,将它们格式化为以更易于理解的方式显示。 使用与 and 不同的输出格式var_dump(),print_r()输出是有效的 PHP 代码 对调试很有用 如果将其true作为第二个参数传递,则可以将其输出值作为返回值返回 例如,如果我们执行以下操作 class A { public $var; } $a = new A; $a->var = 5; var_export($a); 结果我们会得到: A::__set_state(array( 'var' => 5, )) 等级 echo比print echo他们print是语言构造函数 print_r()它们var_dump()是函数 echo并且print可以通过括号作为函数接收它们的参数echo("Hello", "world");或print("Hello World"); Héctor 2020-05-25T05:24:17+08:002020-05-25T05:24:17+08:00 第一个很大的区别是 print_randvar_dump是真正的函数,而echoandprint不是真正的函数而是语言构造函数。 <?php //print es un constructor de lenguaje print 'Hola'; //La operación anterior es equivalente a print('Hola'); //print_r es una función, la siguiente expresión es incorrecta y genera error print_r 'Hola'; ?> 回声与打印 两者都是显示文本字符串的语言结构,但略有不同。这是每个的形状和类型: int print ( string $arg ) void echo ( string $arg1 [, string $... ] ) 从上面的定义我们可以推断: print 打印一个字符串,echo 可以打印多个以逗号分隔的字符串: print 'Hola'; echo 'Hola', 'Hola de nuevo'; print 返回一个根据文档始终为 1 的 int 值,因此它可以在表达式中使用,而 echo 是 void 类型,没有返回值并且不能在表达式中使用: //Se imprime "Hola" y la variable $foo toma el valor 1 $foo = print 'Hola'; //La siguiente expresión da error $foo = echo 'Hola'; 根据一些消息来源(https://www.w3schools.com/php/func_string_print.asp),回声比打印稍快。 print_r 与 var_dump 这两个函数以人类可读的格式打印变量的详细信息,包括其值。如果是数组或对象,它们还会打印每个元素的详细信息。它们通常在调试代码时使用,其中 var_dump 通常更有用,因为它提供的信息更多。区别: 如果变量的值是字符串,则 var_dump 打印用双引号括起来的字符串,而 print_r 不打印。 print_r 不打印任何可见的假字符串和空字符串。 var_dump 提供有关变量的大小和数据类型的信息,如果是数组和对象,则提供组成它的元素的信息。print_r 没有提供有关变量大小或数据类型的信息。 例子: $foo = array( 5, 0.0, "Hola", false, '' ); var_dump( $foo ); //Imprime array(5) { [0]=> int(5) [1]=> float(0) [2]=> string(4) "Hola" [3]=> bool(false) [4]=> string(0) "" } print_r( $foo ); //Imprime Array ( [0] => 5 [1] => 0 [2] => Hola [3] => [4] => ) 如果第二个参数为 true,则 print_r 可以返回结果而不是打印它: $foo = array( 5, 0.0, "Hola", false, '' ); $output = print_r( $foo, true ); var_export 与 var_dump 和 print_r 打印有效的 php 代码。如果您计算需要在其他脚本中为常量的值,这将很有用。请注意,var_export 不处理循环/递归数组引用,而 var_dump 和 print_r 可以。此外, var_export 默认打印结果,但可以使用可选的 $return 参数返回定义的字符串。 <?php class A { public $var1; public $var2; public static function __set_state($an_array) { $obj = new A; $obj->var1 = $an_array['var1']; $obj->var2 = $an_array['var2']; return $obj; } } $a = new A; $a->var1 = 5; $a->var2 = 'foo'; eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array( // 'var1' => 5, // 'var2' => 'foo', // )); var_dump($b); ?> 这将打印: object(A)#2 (2) { ["var1"]=> int(5) ["var2"]=> string(3) "foo" } 您可以在以下位置找到更多信息:(https://cybmeta.com/php-differences-between-echo-print-print_r-y-var_dump)
我喜欢你的问题,我在英文网站上找到了一个相关的,你可以在这里看看,我会花时间翻译上面提到的问题中投票最高的部分答案,让我们开始吧:
扔出去
例子:
打印
例子:
打印_r()
true
作为第二个参数传递,则可以将其输出值作为返回值返回示例:如果我们有以下安排:
我们
print_r($a);
将返回如下内容:var_dump()
print_r()
,例如,它还显示值的类型示例:如果我们有以下安排:
我们
var_dump($a);
将返回如下内容:(请注意,它向我们显示了数组中每个元素的值类型)var_export()
var_dump()
,print_r()
输出是有效的 PHP 代码true
作为第二个参数传递,则可以将其输出值作为返回值返回例如,如果我们执行以下操作
结果我们会得到:
等级
echo
比print
echo
他们print
是语言构造函数print_r()
它们var_dump()
是函数echo
并且print
可以通过括号作为函数接收它们的参数echo("Hello", "world");
或print("Hello World");
第一个很大的区别是
print_r
andvar_dump
是真正的函数,而echo
andprint
不是真正的函数而是语言构造函数。回声与打印
两者都是显示文本字符串的语言结构,但略有不同。这是每个的形状和类型:
从上面的定义我们可以推断:
print 打印一个字符串,echo 可以打印多个以逗号分隔的字符串:
print 返回一个根据文档始终为 1 的 int 值,因此它可以在表达式中使用,而 echo 是 void 类型,没有返回值并且不能在表达式中使用:
根据一些消息来源(https://www.w3schools.com/php/func_string_print.asp),回声比打印稍快。
print_r 与 var_dump
这两个函数以人类可读的格式打印变量的详细信息,包括其值。如果是数组或对象,它们还会打印每个元素的详细信息。它们通常在调试代码时使用,其中 var_dump 通常更有用,因为它提供的信息更多。区别:
如果变量的值是字符串,则 var_dump 打印用双引号括起来的字符串,而 print_r 不打印。
print_r 不打印任何可见的假字符串和空字符串。
var_dump 提供有关变量的大小和数据类型的信息,如果是数组和对象,则提供组成它的元素的信息。print_r 没有提供有关变量大小或数据类型的信息。
例子:
如果第二个参数为 true,则 print_r 可以返回结果而不是打印它:
var_export 与 var_dump 和 print_r
打印有效的 php 代码。如果您计算需要在其他脚本中为常量的值,这将很有用。请注意,var_export 不处理循环/递归数组引用,而 var_dump 和 print_r 可以。此外, var_export 默认打印结果,但可以使用可选的 $return 参数返回定义的字符串。
这将打印:
您可以在以下位置找到更多信息:(https://cybmeta.com/php-differences-between-echo-print-print_r-y-var_dump)