(PHP 4, PHP 5, PHP 7, PHP 8)
compact — 建立一個(gè)數(shù)組,包括變量名和它們的值
$var_name
, array|string ...$var_names
): array創(chuàng)建一個(gè)包含變量與其值的數(shù)組。
對(duì)每個(gè)參數(shù),compact() 在當(dāng)前的符號(hào)表中查找該變量名并將它添加到輸出的數(shù)組中,變量名成為鍵名而變量的內(nèi)容成為該鍵的值。簡(jiǎn)單說(shuō),它做的事和 extract() 正好相反。返回將所有變量添加進(jìn)去后的數(shù)組。
注意:
在 PHP 7.3 之前版本,未設(shè)置的字符串會(huì)被靜默忽略。
var_name
var_names
compact() 接受可變的參數(shù)數(shù)目。每個(gè)參數(shù)可以是一個(gè)包括變量名的字符串或者是一個(gè)包含變量名的數(shù)組,該數(shù)組中還可以包含其它單元內(nèi)容為變量名的數(shù)組, compact() 可以遞歸處理。
返回輸出的數(shù)組,包含了添加的所有變量。
如果字符串指向的變量未定義,compact() 會(huì)產(chǎn)生 E_NOTICE 級(jí)錯(cuò)誤。
版本 | 說(shuō)明 |
---|---|
7.3.0 | 現(xiàn)在,如果字符串指向的變量未定義,compact() 會(huì)產(chǎn)生 E_NOTICE 級(jí)錯(cuò)誤。 在此之前,此類(lèi)問(wèn)題會(huì)靜默忽略掉。 |
示例 #1 compact() 例子
<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$location_vars = array("city", "state");
$result = compact("event", $location_vars);
print_r($result);
?>
以上例程會(huì)輸出:
Array ( [event] => SIGGRAPH [city] => San Francisco [state] => CA )
注意: Gotcha
因?yàn)?a class="link" href="language.variables.variable.html">可變變量也許不能在函數(shù)內(nèi)部用于 PHP 的超全局?jǐn)?shù)組,此時(shí)不能將超全局?jǐn)?shù)組傳遞入 compact() 中。