如果函数在PHP中不起作用,那么它会变大吗?

如果函数在PHP中不起作用,那么它会变大吗?,php,function,if-statement,Php,Function,If Statement,亲爱的, 我很惊讶为什么PHP的“IF-ELSE”函数不能正常工作。我想它有点长,但我为它做了算法,从逻辑上讲,它会工作得很好。有人知道为什么这个功能不能正常工作吗。请 <?php //entry Marks $tc=80;$tf=33;$pc=null;$pf=50; if($tc!=NULL && $tf!=NULL && $pc!=NULL && $pf!=NULL){ echo $tc."

亲爱的, 我很惊讶为什么PHP的“IF-ELSE”函数不能正常工作。我想它有点长,但我为它做了算法,从逻辑上讲,它会工作得很好。有人知道为什么这个功能不能正常工作吗。请

  <?php 
           //entry Marks
  $tc=80;$tf=33;$pc=null;$pf=50;

  if($tc!=NULL && $tf!=NULL && $pc!=NULL && $pf!=NULL){
    echo $tc." ".$tf." ".$pc." ".$pf;
  }else{
      if($tc!=NULL){
        if($tf!=NULL && $pc!=NULL && $pf!=NULL){
          echo "tf.pc.pf";
        }else{
          if($tf!=NULL){
            if($pc!=NULL && $pf!=NULL){
              echo "tf.pc.pf";
            }else{
              if($pc!=NULL){
                if($pf!=NULL){
                  echo "tf.pc.pf";
                }else{
                  echo "tf.pc";
                }
              }else{
                if($pf!=NULL){
                  echo "tf.pf";
                }else{
                  echo "tf";
                }

              }
            }
          }else{
            if($pc!==NULL && $pf!=NULL){
              echo "pc.pf";
            }else{
              if($pc!=NULL){
                if($pf!=NULL){
                  echo "pc.pf";
                }else{
                  echo "pc";
                }
              }else{
                if($pf!=NULL){
                  echo "pf";
                }else{
                  echo "null";
                }
              }
            }
          }
        }
      }else{   //2nd part
          if($tf!=NULL && $pc!=NULL && $pf!=NULL){
            echo "tf.pc.pf";
          }else{
            if($tf!=NULL){
              if($pc!=NULL && $pf!=NULL){
                echo "tf.pc.pf";
              }else{
                if($pc!=NULL){
                  if($pf!=NULL){
                    echo "tf.pc.pf";
                  }else{
                    echo "tf.pc";
                  }
                }else{
                  echo "tf";
                }
              }
            }else{
              if($pc!=NULL && $pf!=NULL){
                echo "pc.pf";
              }else{
                if($pc!=NULL){
                  if($pf!=NULL){
                    echo "pc.pf";
                  }else{
                    echo "pc";
                  }
                }else{
                  if($pf!=NULL){
                    echo "pf";
                  }else{
                    echo "null";
                  }
                }
              }
            }
          }
      }
  }

  ?>

您的代码很难理解,下面的代码示例显示了一个简化版本,它根据变量是否为NULL将值或文本附加到字符串中。您可以轻松地更改if-else语句添加到结果字符串中的内容。最后,我删除最后一个字符串末尾的“.”

$result = "";
if($tc == NULL){
    $result .= "tc.";
}else{
    $result .= $tc.".";
}
if($tf == NULL){
    $result .= "tf.";
}else{
    $result .= $tf.".";
}
if($pc == NULL){
    $result .= "pc.";
}else{
    $result .= $pc.".";
}
if($pf == NULL){
    $result .= "pf.";
}else{
    $result .= $pf.".";
}
$output = rtrim($result, '.');
echo $output;

我会更新我的答案,当它更清楚你想要的是什么输出时

我不知道为什么你的大型if语句不起作用。但我有一个建议,就是制作一个PHP函数来满足您的特定需求:

function check($tc=null,$tf=null,$pc=null,$pf=null){

    $r = array();

    if($tc != null){ $r[] = 'tc'; }
    if($tf != null){ $r[] = 'tf'; }
    if($pc != null){ $r[] = 'pc'; }
    if($pf != null){ $r[] = 'pf'; }

    if(empty($r)){ 
        return 'null';
    } else {
        return implode('.', $r);// MAKE STRING OF ARRAY
    }
}
并按如下方式调用函数:

$tc=80;$tf=33;$pc=null;$pf=50;

echo check($tc, $tf, $pc, $pf);

试一试:

如另一个答案所述,您的代码比需要的长得多。这个长度让人很难理解。您可以使用foreach循环遍历所有列(这将使添加列更加容易)

假设我了解您在寻找什么,您可以使用以下内容:

  $tc=80;$tf=33;$pc=null;$pf=50;

  $columns = array('tc'=>$tc,'tf'=>$tf,'pc'=>$pc,'pf'=>$pf);
  $i = 0;

  $output = "";

  foreach ($columns as $key=> $column) {
      if (!$column == null) {
        $output .= $key.".";
      }
  }

  // strip last period:
  $output = rtrim($output, '.');

  echo $output;

链接到的php沙盒。

哇,这很难理解。这可能应该在一个类中,在这个类中,您可以在方法中将其分解为可读的块。这是地狱般的
if-else
。分成几块,试着纠正它们。甚至没有人对整个代码感兴趣代码怎么不起作用?它在做什么?先生,它在表格中插入标记的代码,有时表格有TC、TF、PC、PF全列,有时只有PC、PF列。我的目标是识别哪列为空,然后按原样放置数据@NoLiver您需要查看这些语句,因为其中一些语句永远不会运行。假设值为NULL,您想将文本“tf.pf”(例如,$tf&$pt为NULL)放在这里,我的假设正确吗@Mdimran