在php中取出嵌套if语句?
问题描述:
我有这样的代码:在php中取出嵌套if语句?
if (condition){ //number1
if (condition){ //number2
action
}
}
else{
action
}
现在,如果嵌套的if语句,2号,原来是假的是,如果可能的“重定向”程序外else语句而不是创建一个嵌套else语句像这样?
if (condition){ //number1
if (condition){ //number2
action
}
else {
action;
}
}
else {
action
}
编辑:这是我的实际代码:
if ($s == 5){ //which award is won
$id_raw = $wpdb->get_var("SELECT user_ID FROM ".$wpdb->prefix."award".$award." WHERE user_ID='".$p_uid."'"); //check to see if user has already won this award
if($id_raw==''){ // if he/she didnt make entry saying they did
$wpdb->query("INSERT INTO ".$wpdb->prefix."award1 (user_ID, isTold) VALUES(".$p_uid.", 'false') ") or die(mysql_error());
wp_delete_post($pid, true);
}
}
else{
cp_points('voteitup_user_up', $uid, get_option('cp_module_voteitup_user_up'), $pid);
cp_points('voteitup_author_up', $p_uid, get_option('cp_module_voteitup_author_up'), serialize(array($pid,$uid)));
}
答
只是猜测你真的想在这里做什么,因为你的id_raw = ''
是废话条件和问题不清楚:
$insert = $id == 5 && !$wpdb->get_var("SELECT user_ID FROM ".$wpdb->prefix."award".$award." WHERE user_ID='".$p_uid."'");
if ($insert) {
$wpdb->query("INSERT INTO ".$wpdb->prefix."award1 (user_ID, isTold) VALUES(".$p_uid.", 'false') ") or die(mysql_error());
wp_delete_post($pid, true);
} else {
cp_points('voteitup_user_up', $uid, get_option('cp_module_voteitup_user_up'), $pid);
cp_points('voteitup_author_up', $p_uid, get_option('cp_module_voteitup_author_up'), serialize(array($pid,$uid)));
}
希望这给你一个想法。
答
为什么不结合你的前两个if语句?你需要在那里做其他事情吗?
if (condition1 && condition2) {
action
}
else {
action
}
'if(condition1 &&!condition2){that action; } else {other action; }'? '> = 5.3.0'支持'goto',但通常也不鼓励。 – 2012-01-08 05:08:03
您可以通过更合理地组织条件来做到这一点。为此,我们需要知道实际情况。至少通过命名条件'condition1'和'condition2'以及'action1'等操作来清楚地说明这个例子。 – deceze 2012-01-08 05:08:47
@ JaredFarrish-这将工作,但我有多个嵌套的if语句 – 2012-01-08 05:10:13