将文本语法转换为PHP语句

将文本语法转换为PHP语句,php,Php,解释起来有点困难,但如果你不能理解,请不要投反对票! 我建立了一个调查系统,我的问题来自DB。我想动态验证它们,所以我想: $query = $db -> query('SELECT * FROM radio'); $issetradio = ''; while($row = $query -> fetch(PDO::FETCH_ASSOC)){ $issetradio .= '&&isset($_POST["'.$row['value'].'"])';

解释起来有点困难,但如果你不能理解,请不要投反对票! 我建立了一个调查系统,我的问题来自DB。我想动态验证它们,所以我想:

$query = $db -> query('SELECT * FROM radio');
$issetradio = '';
while($row = $query -> fetch(PDO::FETCH_ASSOC)){
       $issetradio .= '&&isset($_POST["'.$row['value'].'"])';
}
$issetradio = substr($issetradio,2); // returns "isset($_POST['1']) && isset($_POST['2'])"
现在,我希望这个$issetradio在if语句中进行验证,我希望它是:

if(isset($_POST['1']) && isset($_POST['2']))
问题在于$issetradio采用文本语法,输入方式如下:

if($issetradio) // if('isset(['1']) && isset([''])')
谢谢大家!

它不会那样工作(您可能会为此使用
eval()
,但不要这样做!)

只需使用简单循环和附加变量:

$query = $db -> query('SELECT * FROM radio');
$ok=true;
while($row = $query -> fetch(PDO::FETCH_ASSOC)){
       if(!isset($_POST["'.$row['value'].'"]))
          $ok=false;
}
if($ok) {...}

为什么这样?你知道吗?为什么要把php代码放进一个变量?我将把
$row['value']
存储在一个数组中,并在后一点循环验证。嗨!我是新开发人员,我的思维方式可能不太好,因为我没有经验,如果你能给我建议更好的方式,我将不胜感激。@Dagon我不能将While循环放入if,所以我认为put-in-variable是最好的方式。太棒了,非常感谢你!