array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'zh', ), 'this' => array ( 0 => 'function.compact.php', 1 => 'compact', ), 'up' => array ( 0 => 'ref.array.php', 1 => '数组 函数', ), 'prev' => array ( 0 => 'function.asort.php', 1 => 'asort', ), 'next' => array ( 0 => 'function.count.php', 1 => 'count', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'zh', 'path' => 'reference/array/functions/compact.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
compact — 建立一个数组,包括变量名和它们的值
创建一个包含变量与其值的数组。
对每个参数,compact() 在当前的符号表中查找该变量名并将它添加到输出的数组中,变量名成为键名而变量的内容成为该键的值。简单说,它做的事和 extract() 正好相反。返回将所有变量添加进去后的数组。
注意:
在 PHP 7.3 之前版本,未设置的字符串会被静默忽略。
var_name
var_names
compact() 接受可变的参数数量。每个参数不是包含变量名的字符串,就是变量名组成的数组。数组中可以包含由其他变量名组成的数组,compact() 会递归处理。
返回输出的数组,包含了添加的所有变量。
如果字符串指向的变量未定义,compact() 会产生 E_WARNING
级别的错误。
版本 | 说明 |
---|---|
8.0.0 |
如果指定字符串引用了未设置的变量,现在会发出 E_WARNING 级别的错误。
|
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 )