是否存在从数组的键值对动态创建变量的函数


Does it exist any function to dynamically create variables from the key value pair of an array?

假设我有这个数组,

$array = array(
    'name' => 'hermet',
    'emails' => array ('hermet@example.com',
                     'hermet@example.net');
);

这样echo $array ['name'] == 'hermet'就会打印出true。我想知道PHP中是否已经嵌入了一个函数:

echo $name == 'hermet'; // obviously 'false'
foreach ($array as $key => $value) {
    $aux = $key;
    $$aux = $value; 
}   
echo $name == 'hermet'; // now prints 'true'

它似乎甚至适用于多维数组,但我不知道PHP是否已经有任何函数可以做到这一点。

提前谢谢。

您可能正在寻找提取

$array = array(
    'name' => 'hermet',
    'emails' => array ('hermet@example.com',
                     'hermet@example.net')
);
extract($array);
var_dump($emails);
echo $name;

--编辑:如果您关心Paul的备注,请为extract的第二个参数提供EXTR_SKIP,这样它就不会覆盖变量,以防您在调用extract之前已经定义了它。

$name = 'jason';
extract($array, EXTR_SKIP);
echo $name; // still 'jason'