让foreach根据输入创建变量名称?如何使用extract()

时间:2017-01-19 10:31:24

标签: php loops foreach

是否可以在不必输入整个内容的情况下执行此操作? 与foreach循环一样,它从会话变量名称生成所需的变量名称?

if (isset($_SESSION['MembershipForm'])) {
    $tempstore = $_SESSION['MembershipForm'];

    if (isset($tempstore['ref_referee'])) {
        $ref_referee = $tempstore['ref_referee'];
    } else {
        $ref_referee = NULL;
    }

    if (isset($tempstore['ref_address'])) {
        $ref_address = $tempstore['ref_address'];
    } else {
        $ref_address = NULL;
    }
}

2 个答案:

答案 0 :(得分:2)

您可以使用extract()函数:

$tempstore = $_SESSION['MembershipForm'];
extract($tempstore);

echo $ref_referee;

答案 1 :(得分:1)

嗯......如果我理解你的话你会有:

$_SESSION['MembershipForm'] = array('key1' => 'value1', 'key2' => 'value2'); // etc

并且您希望根据数组的内容创建动态变量。

foreach($_SESSION['MembershipForm'] as $key => $value){
    ${$key} = $value;
    // this will create variables like this $key1 = 'value1'; etc
}