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语句不能一条条顺序往下执行么?
其实是这样的,我想实现的是一个挺简单的东西,就是前端把用户修改的个人信息给服务器,然后服务器把信息更新到数据库中,然后我就是想前端只把用户修改的信息传过来,并不把所有都传过来(有些没修改的就不传过来),所以我服务器才做的判断,哪些有值的再对应具体的操作。
这样判断就好了,看来你还没明白我之前所说的什么意思
比如,
$i=array(); //声明个数组 $i
$b=$i['name']; 这里就会报错。因为$i的下标name不存在。
$_POST也是一样的道理。
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个语句块也能执行。纠结了好久,还是不明白问题出在哪里。