What is the difference between echo, print, and print_r in PHP?

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:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// PHP program to illustrate echo
  
// Declare variable and initialize it.
$x = "GeeksforGeeks ";
$y = "Computer science portal";
  
// Display the value of $x
echo $x, $y;
?>

chevron_right


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:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// PHP program to illustrate echo
  
// Declare variable and initialize it.
$x = "GeeksforGeeks";
  
// Display the value of $x
print $x;
?>

chevron_right


Output:



GeeksforGeeks

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:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// PHP program to illustrate echo
  
// Declare an array
$arr = array('0' => "GeeksforGeeks",
             '1' => "Computer"
             '2' => "Science",
             '3' => "Portal");
  
// Display the value of $x
print_r($arr);
?>

chevron_right


Output:

Array
(
    [0] => GeeksforGeeks
    [1] => Computer
    [2] => Science
    [3] => Portal
)

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
$a = "GeeksforGeeks";
$b = array('0' => "Geeks", '1' => "for", '2' => "Geeks");
$c = 3.14;
$d = 7;
  
// Single argument
print "\n$a\n";
  
// Multiple argument
echo $c + $d . "\n";
  
// Return with internal output buffering
print_r($b);
?>

chevron_right


Output:

GeeksforGeeks
10.14
Array
(
    [0] => Geeks
    [1] => for
    [2] => Geeks
)


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.