在以下代码中
$condition_string= "empty($_SESSION['group_by_Name']) && empty($_SESSION['group_by_Email']) && empty($_SESSION['group_by_Address']) && empty($_SESSION['group_by_Age']) && empty($_SESSION['group_by_Contact'])";
此代码始终执行if语句而不是其他。任何人都可以告诉我代码中的错误在哪里。
$observation_column_name_fetch = mysql_query("SELECT column_name
FROM observation_column where observation_id='$observation_id'")
or die(mysql_error());
while($observation_column_name_res = mysql_fetch_array( $observation_column_name_fetch ))
{
$observation_column_name[]=$observation_column_name_res[column_name];
}
for ($i=0; $i<$observation_column_num; $i++)
{
$group_by=$_POST[group_by_.$observation_column_name[$i]];
$_SESSION[group_by_.$observation_column_name[$i]]=$group_by;
}
$j=1;
$condition_string="";
for($i=0; $i<$observation_column_num; $i++)
{
$condition_string.= 'empty($_SESSION[\'group_by_'.$observation_column_name[$i].'\'])';
if($j<$observation_column_num)
{ $condition_string.=" && "; $j++; }
}
if($condition_string)
{
for ($i=0; $i<$observation_column_num; $i++)
{ echo "if statement executed ".$i." times<br/>"; }
}
else
{
for ($i=0; $i<$observation_column_num; $i++)
{ echo "else statement executed ".$i." times<br/>"; }
}
答案 0 :(得分:1)
您可以使变量名称动态化:
if( empty( $_SESSION['group_by_' . $observation_column_name[$i] ] ){
// ..code..
}
答案 1 :(得分:0)
您不能将字符串表示中的条件传递给if语句。在您当前的代码中,您只需检查字符串$condition_string
是否为false 。
您必须将字符串形式的条件传递给eval函数,以将其评估为代码。