PHP:基于数组内容的变量

时间:2013-10-08 22:55:42

标签: php arrays variables

想象一下:

$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;
    }

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

3 个答案:

答案 0 :(得分:1)

您可以使用variable variables

$level = $$type;

答案 1 :(得分:0)

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

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

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

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

答案 2 :(得分:0)

使用数组会更有意义吗?

$levels = array('Level 1', 'Level 2', 'Level 3'); 
$key    = array_search($type, $levels);
$result = $levels[$key];