Contributors: 72 Friday, July 7, 2017
Licensed under: CC-BY-SA
Not affiliated with Stack Overflow
Rip Tutorial:
Roadmap: roadmap

echo and print


echo and print are language constructs, not functions. This means that they don't require parentheses around the argument like a function does (although one can always add parentheses around almost any PHP expression and thus echo("test") won't do any harm either). They output the string representation of a variable, constant, or expression. They can't be used to print arrays or objects.

  • Assign the string Joel to the variable $name

    $name = "Joel";
  • Output the value of $name using echo & print

    echo $name;   #> Joel
    print $name;  #> Joel
  • Parentheses are not required, but can be used

    echo($name);  #> Joel
    print($name); #> Joel
  • Using multiple parameters (only echo)

    echo $name, "Smith";       #> JoelSmith
    echo($name, " ", "Smith"); #> Joel Smith
  • print, unlike echo, is an expression (it returns 1), and thus can be used in more places:

    print("hey") && print(" ") && print("you"); #> you11
  • The above is equivalent to:

    print ("hey" && (print (" " && print "you"))); #> you11

Shorthand notation for echo

When outside of PHP tags, a shorthand notation for echo is available by default, using <?= to begin output and ?> to end it. For example:

<p><?= "This is also PHP" ?></p>

Note that there is no terminating ;. This works because the closing PHP tag acts as the terminator for the single statement. So, it is conventional to omit the semicolon in this shorthand notation.

Priority of print

Although the print is language construction it has priority like operator. It places between = += -= *= **= /= .= %= &= and and operators and has left association. Example:

echo '1' . print '2' + 3; //output 511

Same example with brackets:

echo '1' . print ('2' + 3); //output 511

Differences between echo and print

In short, there are two main differences:

  • print only takes one parameter, while echo can have multiple parameters.
  • print returns a value, so can be used as an expression.