mixed array_pop ( array &$array )
NULL<?php
$stack = ['PHP', 'JSP', 'ASP'];
echo "原始陣列:\n";
print_r($stack);
$last = array_pop($stack);
echo "\n彈出元素:$last\n";
echo "\n剩餘陣列:\n";
print_r($stack);
?>
輸出:
原始陣列:
Array
(
[0] => PHP
[1] => JSP
[2] => ASP
)
彈出元素:ASP
剩餘陣列:
Array
(
[0] => PHP
[1] => JSP
)
$data = ['a' => 1, 'b' => 2, 'c' => 3];
$val = array_pop($data); // $val = 3,$data 變為 ['a'=>1, 'b'=>2]
$empty = [];
$result = array_pop($empty); // $result === NULL,並觸發 Warning
建議先用 empty() 或 count() 判斷。
$stack = [];
array_push($stack, 'first', 'second');
$last = array_pop($stack); // 後進先出 (LIFO)
| 函數 | 操作端 | 索引重排 | 適用場景 |
|---|---|---|---|
| array_pop() | 陣列尾部 | 數值鍵重排 | 堆疊、移除最新項目 |
| array_shift() | 陣列頭部 | 所有數值鍵重排 | 隊列、處理最舊項目 |
// ❌ 錯誤:未用參考傳遞,無法修改原陣列
$arr = [1,2,3];
$val = array_pop($arr); // 正確寫法本身就是參考,這裡只是示意常見誤區
// ❌ 錯誤:嘗試用於非陣列變數
$str = "abc";
array_pop($str); // Warning,返回 NULL