我经常使用echo和print_r,几乎从不使用print。
我觉得echo是一个宏,而print_r是var_dump的别名。
但这不是解释差异的标准方式。
我经常使用echo和print_r,几乎从不使用print。
我觉得echo是一个宏,而print_r是var_dump的别名。
但这不是解释差异的标准方式。
当前回答
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
其他回答
打印和回声或多或少是相同的;它们都是显示字符串的语言结构。两者的区别很细微: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] =>
)
print_r()可以打印出值,但如果第二个标志参数被传递并且为TRUE -它将返回打印的结果作为字符串,而不发送到标准输出。 var_dump。如果安装了XDebug调试器,那么输出结果将以更易于阅读和理解的方式格式化。
echo、print、print_r和var_dump之间的区别非常简单。
回声
Echo实际上不是一个函数,而是一个用于打印输出的语言结构。它比打印稍微快一点。
echo "Hello World"; // this will print Hello World
echo "Hello ","World"; // Multiple arguments - this will print Hello World
$var_1=55;
echo "$var_1"; // this will print 55
echo "var_1=".$var_1; // this will print var_1=55
echo 45+$var_1; // this will print 100
$var_2="PHP";
echo "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with echo (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with echo (loop or index value required)
你也可以使用带或不带括号的echo语句
echo ("Hello World"); // this will print Hello World
打印
就像echo构造一样,print也是一种语言构造,而不是真正的函数。echo和print的区别在于print只接受一个参数,而print总是返回1。而echo没有返回值。所以print语句可以用在表达式中。
print "Hello World"; // this will print Hello World
print "Hello ","World"; // Multiple arguments - NOT POSSIBLE with print
$var_1=55;
print "$var_1"; // this will print 55
print "var_1=".$var_1; // this will print var_1=55
print 45+$var_1; // this will print 100
$var_2="PHP";
print "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with print (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with print (loop or index value required)
就像echo一样,print可以带括号或不带括号使用。
print ("Hello World"); // this will print Hello World
print_r
print_r()函数用于打印关于变量的人类可读信息。 如果参数是一个数组,print_r()函数打印它的键和元素(对象也是如此)。
print_r ("Hello World"); // this will print Hello World
$var_1=55;
print_r ("$var_1"); // this will print 55
print_r ("var_1=".$var_1); // this will print var_1=55
print_r (45+$var_1); // this will print 100
$var_2="PHP";
print_r ("$var_2"); // this will print PHP
$var_3=array(99,98,97) // this will print Array ( [0] => 1 [1] => 2 [2] => 3 )
$var_4=array("P"=>"3","J"=>"4"); // this will print Array ( [P] => 3 [J] => 4 )
var_dump
Var_dump函数通常用于调试和打印关于变量/数组/对象的信息(类型和值)。
var_dump($var_1); // this will print int(5444)
var_dump($var_2); // this will print string(5) "Hello"
var_dump($var_3); // this will print array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
var_dump($var_4); // this will print array(2) { ["P"]=> string(1) "3" ["J"]=> string(1) "4" }
只是为了补充John的回答,echo应该是您用于将内容打印到页面的唯一一个。
打印速度稍慢。Var_dump()和print_r()应该只用于调试。
另外值得一提的是,print_r()和var_dump()将默认回显,为print_r()添加第二个参数,至少该参数的值为true,以使其返回,例如print_r($array, true)。
echo和return的区别是:
echo:将立即将值打印到输出。 返回:将函数的输出作为字符串返回。对日志记录等有用。
**回声可以接受多个表达式,而打印不能。 Print_r () PHP函数用于以人类可读的形式返回数组。它被简单地写成
![Print_r ($your_array)][1]