我很好奇,PHP的函数extract如何工作?我想做一个稍微修改的版本。我希望我的功能,使从蛇符号数组的键提取到驼峰时,变量名如:extract()如何在当前作用域中创建变量?
现在提取做到这一点:
$array = ['foo_bar' => 'baz'];
extract($array);
// $foo_bar = 'baz';
我想的是:
camelExtract($array);
// $fooBar = 'baz';
现在我当然可以骆驼数组第一,但它会很好,如果这可以在一个单一的功能。
编辑:
看来有些人误解了我的问题。是的,我可以这样做:
function camelExtract($array)
{
$array = ['foo_bar' => 'baz'];
$camelCased = [];
foreach($array as $key => $val)
{
$camelCased[camelcase($key)] = $val;
}
extract($camelCased);
// $fooBar = 'baz';
// I can't "return" the extracted variables here
// .. now $fooBar is only available in this scope
}
camelExtract($array);
// Not here
但正如我所说,那么$ foobar的仅仅是范围内可见。
我想我可以做一些事情,如extract(camelCaseArray($array));
,这将工作。
所以让自己的函数来做到这一点 – 2014-10-07 19:43:49
是,但我怎么能'神奇地'在当前范围创建变量像那个函数? – Matthijn 2014-10-07 19:44:27
它不是魔术,它的代码 – 2014-10-07 19:44:58