从php函数中添加变量到符号表


cakeAdd variables to symbol table from php function

我目前正在使用CakePHP,它大量使用关联数组。对于我的应用程序中的一个函数,如果我能从这些数组中的一些数据中创建单独的变量,那将是很有用的。例如,数组可能像这样:

Array
(
    [User] => Array
        (
            [id] => 1
            [name] => Joe Bloggs
            [email] => test@test.com
        )
    [Post] => Array
        (
            [id] => 1
            [title] => Hello World
        )
    [Profile] => Array
        (
            [id] => 1
            [location] => London
       )
)

我想创建一个函数,可以分割数组为3,并给我三个新的变量。

我已经看了一下extract(),但它并不完全按照我想要的方式工作。我想创建三个新变量:

$user: 
Array
(
    [User] => Array
        (
            [id] => 1
            [name] => Joe Bloggs
            [email] => test@test.com
        )
)
$post:
Array(
    [Post] => Array
        (
            [id] => 1
            [title] => Hello World
        )
)
$profile:
Array(
    [Profile] => Array
        (
            [id] => 1
            [location] => London
       )
)

是否有可能创建一个能够将这些变量添加到符号表的函数,或者我是否只能返回它们?

$array = array(
 'value1'=> array('name' => 'john'),
 'value2'=> array('name' => 'sim')
);
function createVars($data) {
  foreach ($data as $key => $val) {
    global ${$key};
    ${$key} = $val;
  }
}
createVars($array);
// Now you should be able to access $value1 and $value2

查看此链接http://php.net/manual/en/language.variables.variable.php

这是如何为您工作的?

foreach( $input_array as $key => $value ){
   $variable_name = strtolower( $key );
   $$variable_name = array( $value );
}