PHP函数 extract 与 compact 变量与数组互转
PHP函数 extract() 与 compact() 是一对执行相反操作的函数,变量与数组相互转化。
compact() 函数
简介
compact() 函数创建一个由参数所带变量组成的数组。如果参数中存在数组,该数组中变量的值也会被获取。
简单来说,compact() 函数就是将一系列变量转换成数组形式。
返回
一个关联数组,键名为函数的参数,键值为参数中变量的值。
注释:任何没有变量名与之对应的字符串都被略过。
实例
$firstname = "Peter"; $lastname = "Griffin"; $age = "38"; $name = array("firstname", "lastname"); $result = compact($name, "location", "age"); print_r($result);
输出:
Array ( [firstname] => Peter [lastname] => Griffin [age] => 38 )
compact() 函数
语法
extract(array, extract_rules, prefix)
简介
extract() 函数从数组中把变量导入到当前的符号表中。对于数组中的每个元素,键名用于变量名,键值用于变量值。
简单来说,extract() 函数就是将数组转换成变量的形式。
第二个参数 extract_rules 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。
实例
<?php $a = 'Original'; $my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse"); extract($my_array); echo "\$a = $a; \$b = $b; \$c = $c"; ?>
输出:
$a = Cat; $b = Dog; $c = Horse
输出全部参数,如遇相同变量则输出覆盖值和加前缀的被覆盖值:
<?php $a = 'Original'; $my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse"); extract($my_array, EXTR_PREFIX_SAME, 'dup'); echo "\$a = $a; \$b = $b; \$c = $c; \$dup_a = $dup_a;"; ?>
输出:
$a = Original; $b = Dog; $c = Horse; $dup_a = Cat;