Home >Backend Development >PHP Tutorial > 纠结一个简单的if格式有关问题

纠结一个简单的if格式有关问题

WBOY
WBOYOriginal
2016-06-13 12:56:52844browse

纠结一个简单的if格式问题
就像表单验证那样    有些语句总要写狠多if   判断用户名、邮箱、密码等。

用js验证时写一个函数
function check(){
   
   if(用户名!=''){
       
        if(邮箱!=''){
              if(密码!=''){
                  return true;
               }
          }
          
    }
    return false;

}

觉得层数太多不好看;特别是if为真里面的代码多的时候;甚至一个if里的内容超过了一页的范围。
于是改成了这样。

function check(){
   if(用户名!=''){
       return false;
    }
   if(邮箱!=''){
       return false;
    }
   if(密码!=''){
       return false;
    }
    return true;
}

这样看起来清晰,特别是if多的时候。只是有多少个判断就要写 return false多次。
大神们给给宝贵的意见阿  先谢谢啦。


------解决方案--------------------
function check(){<br />
$error = 0;<br />
   if(用户名==''){<br />
       $error=1;<br />
    }<br />
   if(邮箱==''){<br />
       $error=2;<br />
    }<br />
   if(密码==''){<br />
       $error=3;<br />
    }<br />
    return $error;<br />
}


那就只能这样了,返回一个错误代码来帮助判断
------解决方案--------------------
可以把你验证的东西都写成类方法,然后使用链式语法来检验:

class check_rule{<br />
	<br />
	public function check_nickname($name){<br />
		<br />
		if(true){<br />
			return $this;<br />
		}<br />
		<br />
		die('用户名不符合规则');<br />
	}<br />
	<br />
	public function check_email($email){<br />
		<br />
		if(true){<br />
			return $this;<br />
		}<br />
		<br />
		die('email不符合规则');<br />
	}<br />
	<br />
	public function check_password($password){<br />
		<br />
		if(true){<br />
			return $this;<br />
		}<br />
		<br />
		die('密码不正确');<br />
	}<br />
}<br />
<br />
$check = new check_rule();<br />
<br />
$check->check_nickname($name)<br />
		->check_email($email)<br />
		->check_password($password);
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