❮ PHP String Reference ExampleWrite some text to the output: <?php echo "Hello world!"; ?> Try it Yourself »
Definition and UsageThe echo() function outputs one or more strings. Note:
The echo() function is not actually a function, so you are not required to use parentheses with it. However, if you want to pass more than one parameter to echo(), using parentheses will generate a parse error. Tip: The echo() function is slightly faster than print(). Tip: The echo() function also has a shortcut syntax. Prior to PHP 5.4.0, this syntax only works with the short_open_tag
configuration setting enabled.
SyntaxParameter Values
Parameter | Description |
---|
strings
| Required. One or more strings to be sent to the output
|
Technical Details
Return Value: | No value is returned
|
---|
PHP Version: | 4+
|
---|
More ExamplesExampleWrite the value of the string variable ($str) to the output: <?php $str = "Hello world!"; echo $str; ?> Try it Yourself » ExampleWrite the value of the string variable ($str) to the output, including HTML tags: <?php $str = "Hello world!"; echo $str; echo
"<br>What a nice day!"; ?> Try it Yourself » ExampleJoin two string variables together: <?php $str1="Hello world!"; $str2="What a nice day!"; echo $str1 . " " . $str2; ?> Try it Yourself »
ExampleWrite the value of an array to the output: <?php $age=array("Peter"=>"35"); echo "Peter is " . $age['Peter'] . " years old."; ?> Try it Yourself » ExampleWrite some text to the output: <?php echo "This text spans multiple lines."; ?> Try it Yourself » ExampleHow to use multiple parameters: <?php echo 'This ','string ','was ','made ','with multiple parameters.'; ?> Try it Yourself » ExampleDifference of single and double quotes. Single
quotes will print the variable name, not the value: <?php $color = "red"; echo "Roses are $color"; echo "<br>"; echo 'Roses are $color'; ?> Try it Yourself » ExampleShortcut syntax (will only work with the short_open_tag configuration setting enabled): <?php $color = "red"; ?> <p>Roses
are <?=$color?></p> Try it Yourself »
❮ PHP String Reference (PHP 4, PHP 5, PHP 7, PHP 8) echo — Output one or more strings Descriptionecho(string ...$expressions ): void Outputs one or more expressions, with no additional newlines or spaces. echo is not a function but a language construct. Its arguments are a list
of expressions following the echo keyword, separated by commas, and not delimited by parentheses. Unlike some other language constructs, echo does not have any return value, so it cannot be used in the context of an expression. echo also has a shortcut syntax, where you can immediately follow the opening tag with an equals sign. This syntax is available even with the short_open_tag
configuration setting disabled. The major differences to print are that echo accepts multiple arguments and doesn't have a return value. Parameters expressions One or more string expressions to output, separated by commas. Non-string values will be coerced to strings, even when
the strict_types directive is enabled. Return Values No value is returned. ExamplesExample #1 echo examples
<?php echo "echo does not require parentheses.";// Strings can either be passed individually as multiple arguments or // concatenated together and passed as a single argument echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', "\n"; echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";// No newline or space is added; the below outputs "helloworld" all on one line echo "hello"; echo "world";// Same as above echo "hello", "world";
echo
"This string spans multiple lines. The newlines will be output as well";echo "This string spans\nmultiple lines. The newlines will be\noutput as well.";// The argument can be any expression which produces a string $foo = "example"; echo "foo is $foo"; // foo is example$fruits = ["lemon", "orange", "banana"]; echo implode(" and ", $fruits); // lemon and orange and banana// Non-string expressions are coerced to string, even if declare(strict_types=1) is used echo 6 * 7; // 42// Because echo does not behave as an expression, the following code is invalid. ($some_var) ? echo 'true' : echo 'false';// However, the following examples will work: ($some_var) ? print 'true' : print 'false'; // print is also a construct, but // it is a valid expression, returning 1, // so it may be used in this context.echo $some_var ? 'true': 'false'; // evaluating the expression first and passing it to echo ?>
NotesNote: Because this is a language construct and not a function, it cannot be called using variable functions, or named arguments.
Note: Using with parentheses
Surrounding a single argument to echo with parentheses will not raise a syntax error, and produces syntax which looks like a normal function call. However, this can be misleading, because the parentheses are actually part of the expression being output, not part of the echo syntax itself.
<?php echo "hello"; // outputs "hello"echo("hello"); // also outputs "hello", because ("hello") is a valid expressionecho(1 + 2) * 3; // outputs "9"; the parentheses cause 1+2 to be evaluated first, then 3*3 // the echo statement sees the whole expression as one argumentecho "hello", " world"; // outputs "hello world"echo("hello"), (" world"); // outputs "hello world"; the parentheses are part of each expressionecho("hello", " world"); // Throws a Parse Error because ("hello", " world") is not a valid expression ?>
Tip Passing multiple arguments to echo can avoid complications arising from the precedence of the
concatenation operator in PHP. For instance, the concatenation operator has higher precedence than the ternary operator, and prior to PHP 8.0.0 had the same precedence as addition and subtraction:
<?php // Below, the expression 'Hello ' . isset($name) is evaluated first, // and is always true, so the argument to echo is always $name echo 'Hello ' . isset($name) ? $name : 'John Doe' . '!';// The intended behaviour requires additional parentheses echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';// In PHP prior to 8.0.0, the below outputs "2", rather than "Sum: 3" echo 'Sum: ' . 1 + 2;// Again, adding parentheses ensures the intended order of evaluation echo 'Sum: ' . (1 + 2);
If multiple arguments are passed in, then parentheses will not be required to enforce precedence, because each expression is separate:
<?php echo "Hello ", isset($name) ? $name : "John Doe", "!";
echo
"Sum: ", 1 + 2;
See Also- print - Output a string
- printf() - Output a formatted string
- flush() - Flush system output buffer
- Ways to specify literal strings
pemapmodder1970 at gmail dot com ¶ 5 years ago
Passing multiple parameters to echo using commas (',')is not exactly identical to using the concatenation operator ('.'). There are two notable differences.
First, concatenation operators have much higher precedence. Referring to http://php.net/operators.precedence, there are many operators with lower precedence than concatenation, so it is a good idea to use the multi-argument form instead of passing concatenated strings.
<?php echo "The sum is " . 1 | 2; // output: "2". Parentheses needed. echo "The sum is ", 1 | 2; // output: "The sum is 3". Fine. ?>
Second, a slightly confusing phenomenon is that unlike passing arguments to functions, the values are evaluated one by one.
<?php function f($arg){ var_dump($arg); return $arg; } echo "Foo" . f("bar") . "Foo"; echo "\n\n"; echo "Foo", f("bar"), "Foo"; ?>
The output would be: string(3) "bar"FoobarFoo
Foostring(3) "bar" barFoo
It would become a confusing bug for a script that uses blocking functions like sleep() as parameters:
<?php while(true){ echo "Loop start!\n", sleep(1); } ?>
vs
<?php while(true){ echo "Loop started!\n" . sleep(1); } ?>
With ',' the cursor stops at the beginning every newline, while with '.' the cursor stops after the 0 in the beginning every line (because sleep() returns 0).
retrobytespr at mail dot com ¶ 7 months ago
If you have a large block of text, say your blog or something includes code examples, you may use the <<< operator (?) to define the start and end of your block to be echoed out. For instance:
<?php echo <<< JAVASCRIPT
function convertTroyOuncesToGrams(troyOunce) { return troyOunce / 31.1034768; }JAVASCRIPT; # End of block?>
You may also embed PHP strings and other simple scalars into your blocks of text, for example:
<?php $troyOunceAsGrams = 31.1034768;
echo <<< JAVASCRIPT
function convertTroyOuncesToGrams(troyOunce) { return troyOunce / {$troyOunceAsGrams}; }JAVASCRIPT;
t3tesla at gmail dot
com ¶ 1 year ago
We can use the 'echo' shortcut syntax with the conditional operator (expr1) ? (expr2) : (expr3)
<?php $some_var = 10; ?> Back to html : <p class="<?=$some_var>5 ? "class1" : "class2"?>">Some text.</p>
Will give : <p class="class1">Some text.</p>
<?php $some_var = 4; ?> <p class="<?=$some_var>5 ? "class1" : "class2"?>">Some text.</p>
Will give : <p class="class2">Some text.</p>
mparsa1372 at gmail dot com ¶ 1 year ago
The following example shows how to output text with the echo command (notice that the text can contain HTML markup):
<?php echo "<h2>PHP is Fun!</h2>"; echo "Hello world!<br>"; echo "I'm about to learn PHP!<br>"; echo "This ", "string ", "was ", "made ", "with multiple parameters."; ?>
What is an echo in PHP?
echo and print are more or less the same. They are both used to output data to the screen. The differences are small: echo has no return value while print has a return value of 1 so it can be used in expressions. echo can take multiple parameters (although such usage is rare) while print can take one argument.
What are PHP functions?
PHP User Defined Functions
A function is a block of statements that can be used repeatedly in a program. A function will not execute automatically when a page loads. A function will be executed by a call to the function.
Can I echo HTML in PHP?
Using echo or print: PHP echo or print can be used to display HTML markup, javascript, text or variables.
What is return value of echo in PHP?
Unlike some other language constructs, echo does not have any return value, so it cannot be used in the context of an expression.
|