PHP compact() 函数应用场景

实例

创建一个包含变量名和它们的值的数组:

运行实例如下:

Array
(
   [firstname] => Bill
   [lastname] => Gates
   [age] => 60
)

定义和用法

compact() 函数创建包含变量名和它们的值的数组。

注释:任何没有变量名与之对应的字符串都被略过。

语法

compact(var1,var2...)

参数 描述
var1 必需。可以是带有变量名的字符串,或者是变量数组。
var2,... 可选。可以是带有变量名的字符串,或者是变量数组。允许多个参数。

说明

compact() 函数创建一个由参数所带变量组成的数组。如果参数中存在数组,该数组中变量的值也会被获取。

本函数返回的数组是一个关联数组,键名为函数的参数,键值为参数中变量的值。

本函数执行的行为与 extract() 正好相反。

应用场景

用于框架中给模板分配变量多个变量

例如yii2中,向视图中

public function actionCreate()
{
    $model = new Category();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    }
    $id = Yii::$app->request->get('id');
    
    // 不用 compact() 函数
    return $this->render('update', [
        'model' => $model,
        'id' => $id,
    ]);
    // 用 compact() 函数,提高代码的简洁性
    return $this->render('create', compact('model', 'id'));
}

你可能感兴趣的:(PHP compact() 函数应用场景)