compact 建立一个数组,包括变量名和它们的值 &reftitle.description; arraycompact arraystringvar_name arraystringvar_names 创建一个包含变量与其值的数组。 对每个参数,compact 在当前的符号表中查找该变量名并将它添加到输出的数组中,变量名成为键名而变量的内容成为该键的值。简单说,它做的事和 extract 正好相反。返回将所有变量添加进去后的数组。 在 PHP 7.3 之前版本,未设置的字符串会被静默忽略。 &reftitle.parameters; var_name var_names compact 接受可变的参数数目。每个参数可以是一个包括变量名的字符串或者是一个包含变量名的数组,该数组中还可以包含其它单元内容为变量名的数组, compact 可以递归处理。 &reftitle.returnvalues; 返回输出的数组,包含了添加的所有变量。 &reftitle.errors; 如果字符串指向的变量未定义,compact 会产生 E_NOTICE 级错误。 &reftitle.changelog; &Version; &Description; 7.3.0 现在,如果字符串指向的变量未定义,compact 会产生 E_NOTICE 级错误。 在此之前,此类问题会静默忽略掉。 &reftitle.examples; <function>compact</function> 例子 ]]> &example.outputs; SIGGRAPH [city] => San Francisco [state] => CA ) ]]> &reftitle.notes; Gotcha 因为可变变量也许不能在函数内部用于 PHP 的超全局数组,此时不能将超全局数组传递入 compact 中。 &reftitle.seealso; extract