PHP compact() 函数应用场景

实例

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

<?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'));
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容