compact

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

compact 建立一個數(shù)組,包括變量名和它們的值

說明

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

創(chuàng)建一個包含變量與其值的數(shù)組。

對每個參數(shù),compact() 在當前的符號表中查找該變量名并將它添加到輸出的數(shù)組中,變量名成為鍵名而變量的內(nèi)容成為該鍵的值。簡單說,它做的事和 extract() 正好相反。返回將所有變量添加進去后的數(shù)組。

注意:

在 PHP 7.3 之前版本,未設(shè)置的字符串會被靜默忽略。

參數(shù)

var_name
var_names

compact() 接受可變的參數(shù)數(shù)目。每個參數(shù)可以是一個包括變量名的字符串或者是一個包含變量名的數(shù)組,該數(shù)組中還可以包含其它單元內(nèi)容為變量名的數(shù)組, compact() 可以遞歸處理。

返回值

返回輸出的數(shù)組,包含了添加的所有變量。

錯誤/異常

如果字符串指向的變量未定義,compact() 會產(chǎn)生 E_NOTICE 級錯誤。

更新日志

版本 說明
7.3.0 現(xiàn)在,如果字符串指向的變量未定義,compact() 會產(chǎn)生 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

因為可變變量也許不能在函數(shù)內(nèi)部用于 PHP 的超全局數(shù)組,此時不能將超全局數(shù)組傳遞入 compact() 中。

參見

  • extract() - 從數(shù)組中將變量導入到當前的符號表