Maison  >  Article  >  développement back-end  >  请教小弟我写的这个php函数体传递变量的时候为什么总是上一个函数体的值

请教小弟我写的这个php函数体传递变量的时候为什么总是上一个函数体的值

WBOY
WBOYoriginal
2016-06-13 11:48:17955parcourir

请问我写的这个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": 分支成立

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn