echo
(PHP 4, PHP 5, PHP 7, PHP 8)
echo — 輸出一個或多個字串
說明
echo(string
$arg1
, string $...
= ?): void輸出所有參數。不會換行。
echo 不是一個函式(它是一個語言結構), 因此你不一定要使用小括號來指明參數,單引號,雙引號都可以。 echo (不像其他語言構造)不表現得像一個函式, 所以不能總是使用一個函式的上下文。 另外,如果你想給echo 傳遞多個參數, 那麼就不能使用小括號。
echo 也有一個快捷用法,你可以在打開標記前直接用一個等號。在 PHP 5.4.0 之前,必須在php.ini 裡面啟用 short_open_tag 才有效。
I have <?=$foo?> foo.
和 print
最主要的不同之處是,
echo
接受參數列表,並且沒有返回值。
參數
-
arg1
-
要輸出的參數
-
...
-
返回值
沒有返回值。
範例
示例 #1 echo 例子
<?php
echo "Hello World";
// 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.', chr(10);
echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";
// Because echo does not behave like a function, 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 behaves like a function, so
// it may be used in this context.
echo $some_var ? 'true': 'false'; // changing the statement around
?>
註釋
小技巧
相對 echo 中拼接字串而言,傳遞多個參數比較好,考慮到了 PHP 中連線運算子(「.」)的優先順序。 傳入多個參數,不需要圓括號保證優先順序:
<?php
echo "Sum: ", 1 + 2;
echo "Hello ", isset($name) ? $name : "John Doe", "!";
如果拼接字串,連線運算子(「.」)相對於加號優先順序相同,比三元運算子優先順序更高。爲了正確,必須使用圓括號:
<?php
echo 'Sum: ' . (1 + 2);
echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';