请问我写的这个php函数体传递变量的时候为什么总是上一个函数体的值?
<?php<br>session_start();<br>require("inc/pdo.php");<br>//矫正时区差异<br>ini_set("date.timezone","Asia/Chongqing");<br>$time=date("Y-m-d H:i:s");<br>//获得客户端ip<br>$user_ip = $_SERVER["REMOTE_ADDR"];<br>$name=$_POST["name"];<br>$password=$_POST["password"];<br>emptyloginnull($name,$password);<br><br>//判断传值是否为空<br>function emptyloginnull($name,$password){<br>$functionName='';<br>$functionName="emptyloginnull";<br>if(!empty($name)&&!empty($password)){<br>//都不是空...<br>loginSQL($name,$password);<br>}else{ <br> echo Msg($functionName);<br> }<br>}<br><br>function loginSQL($name,$password){<br> $functionName='';<br>$functionName=1;<br>global $dbc;<br>$md5PD=md5($b64=base64_encode($password));<br>$selectUser=$dbc->prepare("select name,password,loginnumber,loginstatus from nasdaouser where name=? and password=?");<br>$selectUser->execute(array($name,$md5PD));<br>$userNum=$selectUser->rowCount();<br>$res=$selectUser->fetch();<br>if($userNum==1){<br> loginSuecess($name,$res,$md5PD);<br> }else {<br> Msg($functionName);<br> }<br>}<br>//登录成功<br>function loginSuecess($name,$res,$md5PD){<br>$functionName='';<br>$functionName=0;<br>global $dbc,$user_ip,$time;<br>$loginlog=$dbc->prepare("insert into loginlog (name,password,ip,logintime,status,loginstatus) values(?,?,?,?,?,?)");<br>$loginlog->execute(array($name,$md5PD,$user_ip,$time,'0','0'));<br>$userLogin=$dbc->prepare("update nasdaouser set endlogintime=? where name=?");<br>$userLogin->execute(array($time,$name));<br>Msg($functionName);<br>}<br><br><br>function Msg($functionName){<br> echo $functionName;<br> switch($functionName){<br> case "emptyloginnull":<br> echo "不要调戏我好吗?系统也会数数的,你根本没有输入帐号与密码!!!";<br> break;<br> case 0:<br> echo "登录成功!";<br> break;<br> case 1:<br> echo "登录失败,请检查帐号密码是否输入错误!";<br> }<br>}<br>?><br>问题出自function loginsuecess,登录成功后调用msg()函数 传递的$functionname变量应当是0,但是msg()函数体内捕捉到的却是1
------解决方案--------------------
var_dump(0 == "emptyloginnull");
bool(true)
传入 0 也是 case "emptyloginnull": 分支成立











