关于if语句的疑问?(多条if语句,可能同时满足条件,其执行顺序如何)

if语句可以像我下面那样用吗?
就是:
上面是一些获取的post的数据:
$name=$_POST["name"];
$sex=$_POST["sex"];
$signature=$_POST["signature"];
$birthday=$_POST["birthday"];
然后接下来我要用if语句来分别执行某些操作。
if(!empty($name)){
操作1
}
if(!empty($sex)){
操作2
}
if(!empty($signature)){
操作3
}
if(!empty($birthday)){
操作4
}
【说明】获得的post的数据并不是全部都有的,有些有,有些没有,也可能都有,所以下面if条件中就是判断当某些有的情况下执行某些操作。但是我发现这么写它只执行了第一个if语句块,下面的if语句块都没执行。然后我就有疑问了,难道if语句不能一条条顺序往下执行么?

这个方式是可以执行的,如果说没有执行,可能是由于获取值的问题,或者有代码出点了问题。
$name=$_POST["name"];
$sex=$_POST["sex"];
$signature=$_POST["signature"];
$birthday=$_POST["birthday"];
如果这里边 有值为空,那反应该就会出错,不继续执行的。追问

其实是这样的,我想实现的是一个挺简单的东西,就是前端把用户修改的个人信息给服务器,然后服务器把信息更新到数据库中,然后我就是想前端只把用户修改的信息传过来,并不把所有都传过来(有些没修改的就不传过来),所以我服务器才做的判断,哪些有值的再对应具体的操作。

追答if(!empty($_POST["name"])){
echo '<br>name 有值为:'.$_POST["name"];
}
if(!empty($_POST["sex"])){
echo '<br>sex 有值为:'.$_POST["sex"];
}
if(!empty($_POST["signature"])){
echo '<br>signature有值为:'.$_POST["signature";
}
if(!empty($_POST["birthday"])){
echo '<br>birthday 有值 为:'.$_POST["birthday"];
}


这样判断就好了,看来你还没明白我之前所说的什么意思


比如,

$i=array();    //声明个数组 $i

$b=$i['name'];    这里就会报错。因为$i的下标name不存在。

$_POST也是一样的道理。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-01
可以用if ....elseif ....end 语句追问

if...elseif...好像不太适用。我试过这样子的:if(!empty($name)){}else if(!empty($sex)){}else if(!empty($signature)){}if(!empty($birthday)){}同样不行,因为吧,当$name不为空的时候,执行第一个if,那么下面的else if不都不执行了么?

追答

if ...elseif ....end 语句本来就只是执行其中一条语句。当某一条件为真时,请执行其后的语句,后面的条件就不会判断了。

追问

恩恩,是的,那么就是像我这样子的情况,要用什么来实现啊?

追答

哦!你的第一个语句块是否有跳转语句,比如:GOGO语句。原则上,程序会顺序执行,一条一条的判断。要不,你把程序发来看看

追问

就是这种类型的,这代码第一个if语句块能执行,当我把第一个语句块注释掉,然后原先第2个if语句块编程第1个后,那原先第2个语句块也能执行。纠结了好久,还是不明白问题出在哪里。

本回答被网友采纳
相似回答