就像表单验证那样    有些语句总要写狠多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多次。
大神们给给宝贵的意见阿  先谢谢啦。

解决方案 »

  1.   

    if(密码=''||邮箱=''||用户名='')
    {
         //code
    }这样用或语句不好么?
      

  2.   

    if(密码=''||邮箱=''||用户名='')
    {
         //code
    }比如我想要  分别提示错误的信息不一样。
    这样写就做不到了。 
      

  3.   

    function check(){
    $error = 0;
       if(用户名==''){
           $error=1;
        }
       if(邮箱==''){
           $error=2;
        }
       if(密码==''){
           $error=3;
        }
        return $error;
    }那就只能这样了,返回一个错误代码来帮助判断
      

  4.   

    deathoctopus  这三种你觉得哪种好呢。你写的这种  如果要返回的是数组,或者其它。就不可以这样写啦。
      

  5.   

    将左条件和右条件写入数组
    $a = array(左条件……)
    $b = array(右条件……)然后循环,当$a[$i] == $b[$i],记下$i,break,顺利循环完毕就返回true
      

  6.   

    如果不论是否真假,都要检查一遍,用SPL迭代器写个迭代匹配条件就是了
      

  7.   

    snmr_com   可以详细说说吗 
      

  8.   

    手生了,迭代器一下写不出来
    记忆中用 FilterIterator::accept,写个条件就能过滤不符合条件的元素
      

  9.   

    如果你非要用if,可以在外面设置一个标志;boolean flag = true;要不就是上面那些大神说的迭代或者switch
      

  10.   

    可以把你验证的东西都写成类方法,然后使用链式语法来检验:class check_rule{

    public function check_nickname($name){

    if(true){
    return $this;
    }

    die('用户名不符合规则');
    }

    public function check_email($email){

    if(true){
    return $this;
    }

    die('email不符合规则');
    }

    public function check_password($password){

    if(true){
    return $this;
    }

    die('密码不正确');
    }
    }$check = new check_rule();$check->check_nickname($name)
    ->check_email($email)
    ->check_password($password);
      

  11.   

    php 5.2开始支持链式语法,方法最后必须返回$this才能链下去。或者你可以参考jquery的validator插件。将需要验证的变量以及规则写成一个json。
    然后写个类来解析这个json,分别验证里面需要验证的变量。
      

  12.   

    谢谢大家   最后还是用了function check(){
       if(用户名!=''){
           return false;
        }
       if(邮箱!=''){
           return false;
        }
       if(密码!=''){
           return false;
        }
        return true;
    }
    这样容易看