0

想象一下:

$array(type=>$user_input);

$level1 = "arbitrary 1";
$level2 = "arbitarty 2";

if( $type && $type != '' ){
        switch ($type){
            case 'level1':
                $levels = $level1;
                break;
            case 'level2':
                $levels = $level2;
                break;
            }
    }else{
        $levels = $level1 . $level2;
    }

这行得通,但似乎重复——尤其是有 10、20 个关卡时……

我该怎么做:

$array(type=>$user_input);

$level1 = "arbitrary 1";
$level2 = "arbitarty 2";

if( $type && $type != '' ){
        $levels = (use the type contained in the variable named by the user_input)
    }else{
        $levels = $level1 . $level2;
    }

由于我已经失去了说正确英语的能力,我希望我的代码解释是不言自明的。

4

3 回答 3

1

您可以使用变量变量

$level = $$type;
于 2013-10-08T22:59:02.663 回答
0

Wouldn't it make more sense to use an array?

$levels = array('Level 1', 'Level 2', 'Level 3'); 
$key    = array_search($type, $levels);
$result = $levels[$key];
于 2013-10-08T23:09:10.540 回答
0

不知道你想在这里实现什么,但如果我理解正确,我可能会做这样的事情:

$levelList = array(
 'level1' => "arbitrary 1",
 'level2' => "arbitarty 2"
);

if ($type){
   $levels = isset($levelList[$type]) ? $levelList[$type] : implode('', $levelList);
}

使用$$variable语法确实有效,但对我来说似乎有点脏,而且数组似乎在这里更合适

于 2013-10-08T23:07:14.993 回答