Should I use echo or print in php scripts?
Supposedly echo
is faster, but either one would work just fine.
Echo also offers a shortcut syntax when embedding php in HTML. i.e.
I have <?=$foo?> foo.
vs
I have <?php echo $foo;?> foo.
See http://us2.php.net/manual/en/function.echo.php
How are echo and print different in PHP?
From:
http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40
Speed. There is a difference between the two, but speed-wise it
should be irrelevant which one you use. echo is marginally faster
since it doesn't set a return value if you really want to get down to the
nitty gritty.Expression.
print()
behaves like a function in that you can do:$ret = print "Hello World"
; And$ret
will be1
. That means that print
can be used as part of a more complex expression where echo cannot. An
example from the PHP Manual:
$b ? print "true" : print "false";
print is also part of the precedence table which it needs to be if it
is to be used within a complex expression. It is just about at the bottom
of the precedence list though. Only ,
AND
OR
XOR
are lower.
- Parameter(s). The grammar is:
echo expression [, expression[,
But
expression] ... ]echo ( expression, expression )
is not valid.
This would be valid:echo ("howdy"),("partner")
; the same as:echo
; (Putting the brackets in that simple example
"howdy","partner"
serves
no purpose since there is no operator precedence issue with a single
term like that.)
So, echo without parentheses can take multiple parameters, which get
concatenated:
echo "and a ", 1, 2, 3; // comma-separated without parentheses
echo ("and a 123"); // just one parameter with parentheses
print()
can only take one parameter:
print ("and a 123");
print "and a 123";
What Is Difference Between The echo() Statement And The print() Statement In PHP?
print
returns a value (always 1
); echo
returns nothing
echo
will accept multiple arguments, print
only accepts one argument
PHP practical advantages for using echo over print
From phpbench, echo()
is faster than print()
. But I think nobody will notice if your code is a few microseconds slower.
Why echo and print can not be used interchageably in following code snippet?
print
is a construct that behaves like a function; it has a return value of 1
. Therefore:
echo print 'x';
is syntactically valid and produces x1
, where x
is printed by print
and 1
by echo. This is equivalent to:
$print_value = print 'x';
echo $print_value;
echo
, on the other hand, has no return value, so $echo_value = echo 'x';
is a syntax error and so is print echo 'x';
.
Related Topics
How to Remove Accents and Turn Letters into "Plain" Ascii Characters
How to Filter a Two Dimensional Array by Value
How to Embed PHP Code in JavaScript
Why Is Require_Once So Bad to Use
How to Write into a File in PHP
Upgrading My Encryption Library from Mcrypt to Openssl
Find a Matching or Closest Value in an Array
How to Initialize Static Variables
Problem With PHP Mail 'From' Header
Pdo Binding Values For MySQL in Statement
PHP Fatal Error: Call to Undefined Function Curl_Init()
Post an Array from an HTML Form Without JavaScript
Generate Json String from Multidimensional Array Data
What's the Best Way to Get the Last Element of an Array Without Deleting It