美文网首页PHP实战PHP经验分享
PHP compact() 函数应用场景

PHP compact() 函数应用场景

作者: guanguans | 来源:发表于2018-01-10 17:24 被阅读35次

    实例

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

    <?php
    $firstname = "Bill";
    $lastname = "Gates";
    $age = "60";
    
    $result = `compact("firstname", "lastname", "age")`;
    
    print_r($result);
    

    运行实例如下:

    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() 函数应用场景

        本文链接:https://www.haomeiwen.com/subject/mlnonxtx.html