实例
创建一个包含变量名和它们的值的数组:
<?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'));
}
网友评论