Echo - Manual - PHP

  • Downloads
  • Documentation
  • Get Involved
  • Help
  • PHP 8.4
Search docs Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Supported Protocols and Wrappers Security Introduction General considerations Installed as CGI binary Installed as an Apache module Session Security Filesystem Security Database Security Error Reporting User Submitted Data Hiding PHP Keeping Current Features HTTP authentication with PHP Cookies Sessions Handling file uploads Using remote files Connection handling Persistent Database Connections Command line usage Garbage Collection DTrace Dynamic Tracing Function Reference Affecting PHP's Behaviour Audio Formats Manipulation Authentication Services Command Line Specific Extensions Compression and Archive Extensions Cryptography Extensions Database Extensions Date and Time Related Extensions File System Related Extensions Human Language and Character Encoding Support Image Processing and Generation Mail Related Extensions Mathematical Extensions Non-Text MIME Output Process Control Extensions Other Basic Extensions Other Services Search Engine Extensions Server Specific Extensions Session Extensions Text Processing Variable and Type Related Extensions Web Services Windows Only Extensions XML Manipulation GUI Extensions Keyboard Shortcuts? This help j Next menu item k Previous menu item g p Previous man page g n Next man page G Scroll to bottom g g Scroll to top g h Goto homepage g s Goto search(current page) / Focus search box explode » « crypt
  • PHP Manual
  • Function Reference
  • Text Processing
  • Strings
  • String Functions
Change language: English German Spanish French Italian Japanese Brazilian Portuguese Russian Turkish Ukrainian Chinese (Simplified) Other echo

(PHP 4, PHP 5, PHP 7, PHP 8)

echoOutput one or more strings

Description

echo(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. I have <?=$foo?> foo.

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.

Examples

Example #1 echo examples

<?phpecho "echo does not require parentheses.";// Strings can either be passed individually as multiple arguments or// concatenated together and passed as a single argumentecho '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 lineecho "hello";echo "world";// Same as aboveecho "hello", "world";echo "This string spansmultiple lines. The newlines will beoutput 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 usedecho 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?>

Notes

Note: 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. <?phpecho "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 $nameecho 'Hello ' . isset($name) ? $name : 'John Doe' . '!';// The intended behaviour requires additional parenthesesecho '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 evaluationecho 'Sum: ' . (1 + 2);

If multiple arguments are passed in, then parentheses will not be required to enforce precedence, because each expression is separate:

<?phpecho "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

Found A Problem?

Learn How To Improve This Page • Submit a Pull Request • Report a Bug +add a note

User Contributed Notes 1 note

up down 36 pemapmodder1970 at gmail dot com7 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.<?phpecho "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.<?phpfunction 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"FoobarFooFoostring(3) "bar"barFooIt would become a confusing bug for a script that uses blocking functions like sleep() as parameters:<?phpwhile(true){ echo "Loop start!\n", sleep(1);}?>vs<?phpwhile(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). +add a note
  • String Functions
    • addcslashes
    • addslashes
    • bin2hex
    • chop
    • chr
    • chunk_​split
    • convert_​uudecode
    • convert_​uuencode
    • count_​chars
    • crc32
    • crypt
    • echo
    • explode
    • fprintf
    • get_​html_​translation_​table
    • hebrev
    • hex2bin
    • html_​entity_​decode
    • htmlentities
    • htmlspecialchars
    • htmlspecialchars_​decode
    • implode
    • join
    • lcfirst
    • levenshtein
    • localeconv
    • ltrim
    • md5
    • md5_​file
    • metaphone
    • money_​format
    • nl_​langinfo
    • nl2br
    • number_​format
    • ord
    • parse_​str
    • print
    • printf
    • quoted_​printable_​decode
    • quoted_​printable_​encode
    • quotemeta
    • rtrim
    • setlocale
    • sha1
    • sha1_​file
    • similar_​text
    • soundex
    • sprintf
    • sscanf
    • str_​contains
    • str_​decrement
    • str_​ends_​with
    • str_​getcsv
    • str_​increment
    • str_​ireplace
    • str_​pad
    • str_​repeat
    • str_​replace
    • str_​rot13
    • str_​shuffle
    • str_​split
    • str_​starts_​with
    • str_​word_​count
    • strcasecmp
    • strchr
    • strcmp
    • strcoll
    • strcspn
    • strip_​tags
    • stripcslashes
    • stripos
    • stripslashes
    • stristr
    • strlen
    • strnatcasecmp
    • strnatcmp
    • strncasecmp
    • strncmp
    • strpbrk
    • strpos
    • strrchr
    • strrev
    • strripos
    • strrpos
    • strspn
    • strstr
    • strtok
    • strtolower
    • strtoupper
    • strtr
    • substr
    • substr_​compare
    • substr_​count
    • substr_​replace
    • trim
    • ucfirst
    • ucwords
    • vfprintf
    • vprintf
    • vsprintf
    • wordwrap
  • Deprecated
    • convert_​cyr_​string
    • hebrevc
    • utf8_​decode
    • utf8_​encode
To Top ↑ and ↓ to navigate • Enter to select • Esc to close Press Enter without selection to search using Google

Từ khóa » E Echo Php