首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP list() 將陣列值賦予變數完整用法與實務範例

     編輯:PHP 相關知識

PHP list() 將陣列值賦予變數完整用法與實務範例

list() 是語言結構(非函式),能一行程式碼將陣列元素批量賦值給多個變數,常用於資料庫查詢結果解包、多值回傳函式。

語法

void list(mixed $var1, mixed $var2, ...)
  • 僅支援**數字索引陣列**(0 起始)
  • PHP 7.1+ 支援指定鍵名:list('a'=>$a, 'b'=>$b) = $arr;

基本範例

$arr = [18, 20, 25];
list($wang, $li, $zhang) = $arr;
echo $wang;   // 18
echo $zhang;  // 25

資料庫查詢經典用法

$result = mysqli_query($conn, "SELECT id, username, email FROM users");
while (list($id, $username, $email) = mysqli_fetch_row($result)) {
    echo "用戶: $username, Email: $email
"; }

list() 搭配陣列索引的特殊行為

$arr = [18, 20, 25];
list($a[0], $a[1], $a[2]) = $arr;
print_r($a);
// Array ( [2] => 25 [1] => 20 [0] => 18 )  ← 順序相反!

原因: list() 從索引 0 開始依序賦值,但陣列索引賦值時較大索引後寫入會覆蓋,導致最終陣列索引順序反轉。

PHP 7.1+ 解構賦值(更直觀)

// 數字索引
[$a, $b, $c] = [1, 2, 3];

// 關聯索引(指定鍵名)
['name'=>$name, 'age'=>$age] = ['name'=>'John', 'age'=>30];

// 巢狀解構
['user'=>['name'=>$name, 'email'=>$email]] = $data;

實務技巧

  • 函式回傳多值:function getUser() { return [1, 'John', 'john@example.com']; } list($id, $name, $email) = getUser();
  • 跳過不需要的值:list($id, , $email) = $arr;(中間留空)
  • 搭配 each() 遍歷(舊式,不推薦)

掌握 list() 快速解包陣列,配合 PHP 7.1+ 解構賦值語法,寫出更簡潔可讀的程式碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved