首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果函数在PHP中不起作用会有多大问题?

如果函数在PHP中不起作用会有多大问题?
EN

Stack Overflow用户
提问于 2017-02-12 01:22:20
回答 3查看 49关注 0票数 0

亲爱的,我很惊讶为什么PHP 'IF ELSE‘函数不能正常工作。我猜它有点长,但我为它做了算法,从逻辑上讲它会完美地工作。有人知道为什么这个函数不能正常工作吗?请..。

代码语言:javascript
运行
复制
  <?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";
                  }
                }
              }
            }
          }
      }
  }

  ?>
EN

回答 3

Stack Overflow用户

发布于 2017-02-12 02:02:44

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

代码语言:javascript
运行
复制
$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;

我会在你想要的输出更清晰一点的时候更新我的答案

票数 0
EN

Stack Overflow用户

发布于 2017-02-12 02:08:20

我不知道为什么你的大if语句不能工作。但我确实有一个建议,可以制作一个PHP函数来处理您的特定需求:

代码语言:javascript
运行
复制
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
    }
}

并像这样调用函数:

代码语言:javascript
运行
复制
$tc=80;$tf=33;$pc=null;$pf=50;

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

尝试一下:https://eval.in/735202

票数 0
EN

Stack Overflow用户

发布于 2017-02-12 02:09:44

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

假设我理解您要查找的内容,您可以使用以下内容:

代码语言:javascript
运行
复制
  $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;

链接到demo here的php沙箱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42178856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档