将张贴值的数组与php中的函数数组进行匹配


match array of posted values to an array of functions in php

我有一个基本的逻辑问题。我的目标是从表单中获取选中的复选框,将它们作为数组提交,然后将值与函数数组相匹配。我试图找到一种与函数数组匹配所选输入的方法,因此我不会以if{} elseif{}语句的页面结束,以覆盖越来越多的选项。

这是一个例子,我如何有我的webform设置包含一组复选框。我使用"[]"将所选值作为数组传递。

webform:

<input type="checkbox" name="action[]" value="open" checked>open</input>
<input type="checkbox" name="action[]" value="close">close</input>
<input type="checkbox" name="action[]" value="lift">lift</input>
<input type="checkbox" name="action[]" value="drop">drop</input>
<input type="checkbox" name="action[]" value="destroy">destroy</input>
<input type="checkbox" name="action[]" value="create">create</input>

php post处理程序

$o = open();
$c = create();
$l = lift();
$d = drop();
$de = destroy();
$cr = create();
$mysvcs = array($o, $c, $l, $d, $de, $cr);

//stuck here
$action = $_POST['action'];
$postsvc = implode(",", $action );  
$req = strstr($mysvcs, $postsvc);
?>

我觉得我可能以完全错误的方式来处理这件事,我将感谢社区的任何指导。

多谢

-AussiedeviL

如果你想执行选中的函数,下面的代码应该可以工作:

function open() {} //your open declaration 
function close() {} //your close declaration 
function lift() {} //your lift declaration 
//all other declarations
foreach($_POST['action'] as $a){
    $a();//execute matching function 
}