在if()之后为php中的大量变量赋值

Do you know a better way to do thing when it comes to assigning values to a large number of variables after an if?

In my case it like this:

$akeType = array_key_exists('type',$handle);
$akeParent = array_key_exists('parent',$handle);
$akeUserName = array_key_exists('userName',$handle);
$akeUserId = array_key_exists('userId',$handle);
$akeCountryCode = array_key_exists('userId',$handle);

if ( $akeType && $akeParent && $akeUserName && $akeUserId & $akeCountryCode ) {
$listType   = $handle['type'];
$listParent = $handle['parent'];
$listUserName = $handle['userName'];
$listUserId = $handle['userId'];
$foo = $_POST['foo'];
$bar = $_POST['bar'];
$listCountryCode = $handle['countryCode']; // Is there a way to clean up this part? The assignments to variables.

You can do this with the somewhat more obscure code following:

$keys= array('type','parent','userName', 'userId');
foreach($keys as $key) {
    $nametoset= "list".ucfirst($key);
    $$nametoset= $handle[$key];
}

$$nametoset refers to the variable named like the string $nametoset. Similar code may be used for the $ake... variables.

You can use Variable variables to set your variable list.

For your specific case, you can use the following code:

foreach ($handle as $key => $value) {
    $var_name = 'list'.$key;
    $$var_name = $value;
}

foreach ($_POST as $pkey => $pvalue) {
    $$pkey = $pvalue;
}

These loops create variables depending on your arrays keys.

take a look at the extract -- Import variables into the current symbol table from an array

extract($handle, EXTR_OVERWRITE, "ake_");