echo

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

echo輸出一個(gè)或多個(gè)字符串

說(shuō)明

echo(string $arg1, string $... = ?): void

輸出所有參數(shù)。不會(huì)換行。

echo 不是一個(gè)函數(shù)(它是一個(gè)語(yǔ)言結(jié)構(gòu)), 因此你不一定要使用小括號(hào)來(lái)指明參數(shù),單引號(hào),雙引號(hào)都可以。 echo (不像其他語(yǔ)言構(gòu)造)不表現(xiàn)得像一個(gè)函數(shù), 所以不能總是使用一個(gè)函數(shù)的上下文。 另外,如果你想給echo 傳遞多個(gè)參數(shù), 那么就不能使用小括號(hào)。

echo 也有一個(gè)快捷用法,你可以在打開(kāi)標(biāo)記前直接用一個(gè)等號(hào)。在 PHP 5.4.0 之前,必須在php.ini 里面啟用 short_open_tag 才有效。

I have <?=$foo?> foo.

print 最主要的不同之處是, echo 接受參數(shù)列表,并且沒(méi)有返回值。

參數(shù)

arg1

要輸出的參數(shù)

...

返回值

沒(méi)有返回值。

范例

示例 #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
?>

注釋

注意: 因?yàn)槭且粋€(gè)語(yǔ)言構(gòu)造器而不是一個(gè)函數(shù),不能被 可變函數(shù) 調(diào)用。

小技巧

相對(duì) echo 中拼接字符串而言,傳遞多個(gè)參數(shù)比較好,考慮到了 PHP 中連接運(yùn)算符(“.”)的優(yōu)先級(jí)。 傳入多個(gè)參數(shù),不需要圓括號(hào)保證優(yōu)先級(jí):

<?php
echo "Sum: "2;
echo 
"Hello ", isset($name) ? $name "John Doe""!";

如果拼接字符串,連接運(yùn)算符(“.”)相對(duì)于加號(hào)優(yōu)先級(jí)相同,比三元運(yùn)算符優(yōu)先級(jí)更高。為了正確,必須使用圓括號(hào):

<?php
echo 'Sum: ' . (2);
echo 
'Hello ' . (isset($name) ? $name 'John Doe') . '!';

參見(jiàn)