Php 如果($condition\u string)工作不正常
在下面的代码中Php 如果($condition\u string)工作不正常,php,Php,在下面的代码中 $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'])";
$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语句而不是else语句。谁能告诉我代码中的错误在哪里
$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/>"; }
}
$observation\u column\u name\u fetch=mysql\u query(“选择column\u name
来自观测值列,其中观测值(id=“$observation(id)”)
或者死(mysql_error());
而($observation\u column\u name\u res=mysql\u fetch\u array($observation\u column\u name\u fetch))
{
$observation_column_name[]=$observation_column_name_res[column_name];
}
对于($i=0;$i您不能将字符串表示形式中的条件传递给if语句。在当前代码中,您只需检查字符串$condition\u string
是否为false
您必须以字符串形式将条件传递给函数,以将其作为代码进行计算。您可以使变量名成为动态的:
if( empty( $_SESSION['group_by_' . $observation_column_name[$i] ] ){
// ..code..
}
我无法将条件直接写入if语句,因为$observation\u column\u name[]是一个数组,$observation\u column\u num是从数据库获取的变量。$observation\u column\u name[]和$observation\u column\u num是从数据库动态加载的。是否有其他解决方案???eval(\$condition\u string=\)$condition_string\“;”);echo$condition_string;返回:empty(group_by_Name)&&empty(group_by_Email)&&empty(group_by_Address)&&empty(group_by_Age)&&empty(group_by_Contact)
而不是这个empty($_会话[group_by_Name])&&empty($_会话[group_by_Email])&&empty($_会话[group_by_Email])&&empty($_会话[group_by_地址])&&empty)($\u SESSION[groupu by_Age])&empty($\u SESSION[groupu by_Contact])
if语句必须在所有会话变量$\u SESSION['groupu by_Name']、$\u SESSION['groupu by_Email']、$\u SESSION['groupu by_Address']、$\u SESSION['groupu by_Age']和$\u SESSION['groupu by_Contact]为空时执行。如果我使用if(empty($\u SESSION SESSION['group_by_u.'.$observation_column_name[$i]]){/..code..}然后,如果会话变量中的任何一个empty@Amrit我认为你没有选择解决这个问题的最佳方法。