What is the difference between echo, print, and print_r in PHP?
Last Updated :
12 Dec, 2018
echo: echo is not a function rather it is described as a language construct. It accepts an list of argument (multiple arguments can be passed) and returns no value or returns void. It cannot be used as a variable function in PHP. It is used to display the output of parameters that is passed to it. It display the outputs one or more strings separated by commas.
Example:
<?php
$x = "GeeksforGeeks " ;
$y = "Computer science portal" ;
echo $x , $y ;
?>
|
Output:
GeeksforGeeks Computer science portal
print: It is not a real function. it is a language construct but always returns the value 1. So it can be used as an expression. Unlike echo, print accepts only one argument at a time. It cannot be used as a variable function in PHP. The print outputs only the strings. It is slow compared to that of echo.
Example:
<?php
$x = "GeeksforGeeks" ;
print $x ;
?>
|
print_r(): print_r() is a regular function. It outputs the detailed information about the parameter in a format with its type (of an array or an object), which can be easily understandable by humans. In this function the output get stored on the internal buffer when the return parameter is passed. If pass the return parameter to TRUE, print_r() would return the complete information rather than just print it. During walk-through this function helps in identifying any of the glitches while executing the program. It is more similar to the var_dump() function.
Example:
<?php
$arr = array ( '0' => "GeeksforGeeks" ,
'1' => "Computer" ,
'2' => "Science" ,
'3' => "Portal" );
print_r( $arr );
?>
|
Output:
Array
(
[0] => GeeksforGeeks
[1] => Computer
[2] => Science
[3] => Portal
)
Example:
<?php
$a = "GeeksforGeeks" ;
$b = array ( '0' => "Geeks" , '1' => "for" , '2' => "Geeks" );
$c = 3.14;
$d = 7;
print "\n$a\n" ;
echo $c + $d . "\n" ;
print_r( $b );
?>
|
Output:
GeeksforGeeks
10.14
Array
(
[0] => Geeks
[1] => for
[2] => Geeks
)
Share your thoughts in the comments
Please Login to comment...