【发布时间】:2017-08-16 07:51:25
【问题描述】:
我搜索了很多,除了编写更大的代码之外找不到任何解决方案。 我需要的是,只有在设置了两个 $btn_ 字符串之一时才输出。
如果$btn_orange = get_field('btn_orange') 等于 true,则在当前状态下,
( $btn_black = get_field('btn_black') 没有被处理,而 get_field('btn_black') 返回一个好的值。
简而言之:如果$btn_orange 是,则$btn_black 不设置。
这是我当前的代码:
<?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; ?>
现在我可以在单独的 if 块中分隔 btn_orange 和 $btn_black。
但如果两者之一或两者都设置为get_field() 的值,我需要输出<div class="buttons">。
我可以在第一个 if 语句中完成这个吗?
编辑:问题已解决。我不应该在 IF 语句中添加类似 $x = func($parameter) 的内容,而是首先填充字符串,正如 dougtesting.net 指出的那样。
【问题讨论】:
-
您知道您使用的是 =(赋值运算符)而不是 ==(非严格比较运算符),对吧?
标签: php if-statement operators operands