代码之家  ›  专栏  ›  技术社区  ›  Odilio

PHP不处理或中的第二个条件

  •  1
  • Odilio  · 技术社区  · 9 年前

    我需要的是,仅当设置了两个$btn\u字符串中的一个时才输出。

    在当前状态下,如果 $btn_orange = get_field('btn_orange') ( $btn_black = get_field('btn_black') 正在处理 get_field('btn_black')

    简而言之: $btn_black 未设置,如果 $btn_orange

    这是我当前的代码:

    <?php if( ( $btn_orange = get_field('btn_orange') ) || ( $btn_black = get_field('btn_black') ) ): ?>
    
           <div class="buttons">
    
            <?php if($btn_orange && ( $btn_orange_url = get_field('btn_orange_url') ) ): ?>
    
                <a class="btn btn-lg btn-primary" href="<?php echo $btn_orange_url; ?>"><?php echo $btn_orange; ?></a>
    
            <?php elseif($btn_orange): ?>
    
                <span class="btn btn-lg btn-primary"><?php echo $btn_orange; ?></span>
    
            <?php endif;?>
    
            <?php if($btn_black && ( $btn_black_url = get_field('btn_black_url') ) ): ?>
    
                <a class="btn btn-lg btn-black" href="<?php echo $btn_black_url; ?>"><?php echo $btn_black; ?></a>
    
            <?php elseif($btn_black): ?>
    
                <span class="btn btn-lg btn-black"><?php echo $btn_black; ?></span>
    
            <?php endif;?>
    
        </div>
    
    <?php endif; ?>
    

    现在我可以分开了 btn_orange 和 在单独的if块中。 但我需要 <div class="buttons"> get_field() .

    编辑: 问题已解决。我不应该放这样的东西 $x = func($parameter) IF 语句,但首先填充字符串作为测试。net指出。

    4 回复  |  直到 9 年前
        1
  •  1
  •   dougtesting.net    9 年前

    当$btn\u orange为true时,$btn\u black不填充get\u字段('btn\u black'),因为PHP停止计算IF语句的其余部分,因为第一部分为true。

    $btn_orange = get_field('btn_orange');
    $btn_black = get_field('btn_black');
    
    if($btn_orange || $btn_black) {
       etc...
    }
    

    然后这两个变量都可以在if语句中使用。

        2
  •  1
  •   Jens    9 年前

    对于状况检查,您必须使用 == 而不是 =

    if( ( $btn_orange == get_field('btn_orange') ) || ( $btn_black == get_field('btn_black')
    
        3
  •  1
  •   staynjokede    9 年前

        4
  •  1
  •   apokryfos    9 年前

    执行以下操作:

    <?php $btn_orange = get_field('btn_orange'); 
          $btn_black = get_field('btn_black');
          if ($btn_orange || $btn_black): 
     ?>
    

    还要考虑以下代码:

     if (isset($array["index"])) && $array["index"] == "something)