php变量与数组相互转换的方法(extract与compact)

下面是 php 变量与数组相互转换的方法(extract与compact)的完整攻略:

下面是 php 变量与数组相互转换的方法(extract与compact)的完整攻略:

extract 函数

extract 函数可以将一个关联数组解包为一系列同名变量,其语法为:

extract($array, $flags = EXTR_OVERWRITE, $prefix = null);
  • $array:要解包的关联数组。
  • $flags:可选参数,控制变量提取的行为,可以为以下值之一:
  • EXTR_OVERWRITE:默认值,如果同名变量已经存在,就覆盖掉原来的变量。
  • EXTR_SKIP:如果同名变量已经存在,就保留原来的变量。
  • EXTR_PREFIX_SAME:如果同名变量已经存在,就加上指定的前缀,保留原来的变量。
  • EXTR_PREFIX_ALL:为所有变量加上指定的前缀。
  • EXTR_PREFIX_INVALID:为无效的变量名加上指定的前缀。
  • EXTR_IF_EXISTS:只有在变量已经存在时,才进行提取。
  • EXTR_REFS:将提取的变量的值设为原数组元素的引用。
  • $prefix:可选参数,指定变量名的前缀。

示例1:

<?php
$array = array('name' => 'Jim', 'age' => 32, 'gender' => 'male');
extract($array);
echo $name;    // Jim
echo $age;     // 32
echo $gender;  // male
?>

示例2:

<?php
$array = array('name' => 'Jim', 'age' => 32, 'gender' => 'male');
extract($array, EXTR_PREFIX_ALL, 'person');
echo $person_name;    // Jim
echo $person_age;     // 32
echo $person_gender;  // male
?>

compact 函数

compact 函数可以将变量打包成一个关联数组,其语法为:

compact($var1, $var2, ...);
  • $var1, $var2:要打包的变量名。

示例1:

<?php
$name = 'Jim';
$age = 32;
$gender = 'male';
$array = compact('name', 'age', 'gender');
print_r($array);
// 输出结果:Array ( [name] => Jim [age] => 32 [gender] => male )
?>

示例2:

<?php
$vars = array('name', 'age', 'gender');
$name = 'Jim';
$age = 32;
$gender = 'male';
$array = compact($vars);
print_r($array);
// 输出结果:Array ( [name] => Jim [age] => 32 [gender] => male )
?>

这就是 php 变量与数组相互转换的方法(extract 与 compact)的完整攻略了。

本文标题为:php变量与数组相互转换的方法(extract与compact)

基础教程推荐