韶华小苑 |

时光不负终不老

您现在的位置是: 首页 > 文章 >

php 的 compact()函数和extract()函数

php 的 compact()函数和extract()函数

大帅哥 2020-09-15 暂无评论 暂无分类 18

引言

这俩函数是真的好玩,我在看我以前代码的时候,总是觉得太过冗余了,想优化的时候想起来这俩函数,先贴上这两个函数的官方解释

extract() 函数从数组中将变量导入到当前的符号表。
compact() 函数创建一个包含变量名和它们的值的数组。

啥意思呢,看看我下面的代码优化就知道了。

代码优化

原先的代码

// 接收参数
$sex = isset($_GET['sex'])?$_GET['sex']:'';
$age = isset($_GET['age'])?$_GET['age']:'';
$num = isset($_GET['num'])?$_GET['num']:'';

// 构建数组
$condition = [];
$condition['sex'] = $sex;
$condition['age'] = $age;
$condition['num'] = $num;

// 简单查询
$mysql = new mysql('student');
$row = $mysql -> find($condition);

echo "性别为{$sex}的用户记录为:" . print($row);

分析

这里需要接收参数,做一个 数组 来查询,
然后在查询后还需要用到这个参数进行 输出

修改后的代码

// 接收参数
$params = ['sex', 'age', 'num'];
foreach ($params as $v) if (!isset($_GET[$v])) $_GET[$v] = '';// 防止数组越界
extract($_GET);

// 构建数组
$condition = [];
$condition = compact('sex', 'age', 'num');

// 简单查询
$mysql = new mysql('student');
$row = $mysql -> find($condition);

echo "性别为{$sex}的用户记录为:" . print($row);

简单总结

简单来说啊, extract() 函数就是把数组打散,创建成为一个个的变量(当前符号表的变量)

compact() 函数则相反,是将一个个变量名传入,组成一个数组,注意,这里的数组值是变量的值,不是变量名

这两个函数更多的用途,在我看来,主要是方便了各个函数方法的拆开和组合,变量不用一个个地扔到数组里,特别是十几二十个的变量的时候,贼舒服~

本文链接: https://hw13.cn/85acdc1c102883479dc66f856dfbf222.html 最后修改时间: 2020-09-15 21:13:33

瞅我来气不?用红包砸死我吧

赞赏作者
扫一扫支付