PHP 中的 print 語句用於將值輸出到瀏覽器或其他輸出設備,它可以輸出一個或多個值,而已可以格式化輸出,有點類似 echo 的用法,不過有些差異,這部分在本篇文章後段會提到,我們先專注在 print 的用法。
基本用法
print 語句的基本用法如下:
print $variable;
例如,以下程式碼將輸出變量 $message 的值:
$message = "Hello, world!";
print $message;
輸出結果:
Hello, world!
print 語句也可以輸出多個值,使用逗號分隔:
print "Hello", ",", "world!";
輸出結果:
Hello, world!
這個輸出結果與上一個例子是一樣的,差別在於 print 使用了多個雙引號,把要輸出的文字及符號串聯在一起並一次輸出,print 只會輸出引號內的值,因此這兩個例子的輸出結果是一樣的。
格式化輸出
print 語句支持格式化輸出,可以使用 printf 語句的格式化字符串,例如,以下代碼將輸出變量 $name 和 $age 的值,並格式化為“Hello, [name]! You are [age] years old.”:
$name = "John Doe";
$age = 30;
print "Hello, %s! You are %d years old.\n", $name, $age;
輸出結果
Hello, John Doe! You are 30 years old.
返回值
print 語句的返回值為輸出字串的長度。如果輸出失敗,則返回 false。
範例
PHP 8 的 print 可以輸出變量值、多個值、格式化輸出、輸出到文件或輸出到錯誤輸出上,功能算是非常強大,以下是這幾種輸出方法的範例,先大致看一下運作方式即可,剛開始只要先學會輸出變量值及輸出多個值即可,像是格式化輸出或輸出到文件都是比較進階的應用,在未來寫到比較複雜的程式時再深入學習即可:
輸出變量值:
$message = "Hello, world!";
print $message;
輸出多個值:
print "Hello", ",", "world!";
格式化輸出:
$name = "John Doe";
$age = 30;
print "Hello, %s! You are %d years old.\n", $name, $age;
輸出到文件:
$filename = "output.txt";
$message = "Hello, world!";
print $message > $filename;
輸出到錯誤輸出
$errorMessage = "An error occurred.";
print $errorMessage . PHP_EOL . "Error: " . error_get_last()["message"];
與 echo 語句的區別
print 語句與 echo 語句非常相似,它們都可以用於將值輸出到瀏覽器或其他輸出設備,但是,它們之間存在一些細微的區別:
- print 語句可以輸出多個值,而 echo 語句只能輸出一個值。
- print 語句具有返回值,而 echo 語句沒有返回值。
- print 語句的性能略低於 echo 語句。
在一般情況下,可以使用 echo 語句代替 print 語句。但是,如果需要輸出多個值或需要獲取輸出字串的長度,則可以使用 print 語句,兩者可以交互靈活運用。
PHP 8 中的變化
PHP 8 中,print 語句沒有任何重大變化。但是,以下是一些值得注意的變化:
- PHP 8 導入了嚴格類型檢查。如果啟用了嚴格類型檢查,則 print 語句將自動將非字串值轉換為字串。
- PHP 8 導入了 nullsafe 運算符。可以使用 nullsafe 運算符來防止 null 值導致錯誤。例如,下面這段程式碼將安全的輸出變量 $message 的值:
print $message ?? "No message";
結論
print 語句是 PHP 中一個常用語句,在 PHP 8 中依然保留這個功能,用於將值輸出到瀏覽器或其他輸出設備,它支援基本輸出和格式化輸出,並具有返回值,在 PHP 8 中,print 語句沒有任何重大變化,但導入了嚴格類型檢查和 nullsafe 運算符。
延伸閱讀