想象一下:
$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;
}
由于我失去了用正确的英语说话的能力,我希望我的代码解释不言自明。
答案 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];