Python、Go 等語言原生支援函數返回多值(如 a, b = func())。PHP 雖無直接語法,但可結合 陣列回傳 與 list() 語言結構 達到相同效果。
<?php
function retrieve_user_profile() {
$user = [];
$user[] = "Jason";
$user[] = "jb51.net";
$user[] = "English";
return $user;
}
// 使用 list() 解構陣列到多個變數
list($name, $email, $language) = retrieve_user_profile();
echo "Name: $name, email: $email, preferred language: $language";
// 輸出:Name: Jason, email: jb51.net, preferred language: English
?>
$data = [10, 20, 30, 40];
list(, , $third) = $data; // 只取第三個
echo $third; // 30
[$a, $b, $c] = retrieve_user_profile(); // 短陣列語法
// 等同於 list($a, $b, $c) = ...
function get_user() {
return ['name' => 'Alice', 'email' => 'alice@example.com'];
}
['name' => $name, 'email' => $email] = get_user();
list() 僅支援數值索引陣列(PHP 7.1 前),關鍵字索引需用上述解構語法。list() 變數數量,多餘變數會被設為 null 並觸發 Notice。善用 list() / 短陣列解構,能讓 PHP 程式碼在「多值返回」場景下更簡潔、可讀性更高,是現代 PHP 開發的常用慣用語。