建立一個陣列,包括變數名和它們的值

compact

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

compact 建立一個陣列,包括變數名和它們的值

說明

compact(array|string $var_name, array|string ...$var_names): array

建立一個包含變數與其值的陣列。

對每個參數,compact() 在目前的符號表中查詢該變數名並將它新增到輸出的陣列中,變數名成為鍵名而變數的內容成為該鍵的值。簡單說,它做的事和 extract() 正好相反。返回將所有變數新增進去後的陣列。

注意:

在 PHP 7.3 之前版本,未設定的字串會被靜默忽略。

參數

var_name
var_names

compact() 接受可變的參數數目。每個參數可以是一個包括變數名的字串或者是一個包含變數名的陣列,該陣列中還可以包含其它單元內容為變數名的陣列, compact() 可以遞迴處理。

返回值

返回輸出的陣列,包含了新增的所有變數。

錯誤/異常

如果字串指向的變數未定義,compact() 會產生 E_NOTICE 級錯誤。

更新日誌

版本 說明
7.3.0 現在,如果字串指向的變數未定義,compact() 會產生 E_NOTICE 級錯誤。 在此之前,此類問題會靜默忽略掉。

範例

示例 #1 compact() 例子

<?php
$city  
"San Francisco";
$state "CA";
$event "SIGGRAPH";

$location_vars = array("city""state");

$result compact("event"$location_vars);
print_r($result);
?>

以上例程會輸出:

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

註釋

注意: Gotcha

因為可變變數也許不能在函式內部用於 PHP 的超全域性陣列,此時不能將超全域性陣列傳遞入 compact() 中。

參見

  • extract() - 從陣列中將變數匯入到目前的符號表

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *