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

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

WBOY
WBOYOriginal
2016-06-13 11:48:17954browse

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn