首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建优雅的if语句

创建优雅的if语句
EN

Stack Overflow用户
提问于 2012-02-18 04:14:39
回答 4查看 187关注 0票数 1

我有以下一组if语句:

代码语言:javascript
复制
<?php

if (!empty($sn1link) && !empty($sn1)) {
    echo('<a href="'.$sn1link.'" target="_blank"><button class="lbutton-content">'.$sn1.'</button></a>');
}

if (!empty($sn2link) && !empty($sn2)) {
    echo('<a href="'.$sn2link.'" target="_blank"><button class="lbutton-content">'.$sn2.'</button></a>');
}

if (!empty($sn3link) && !empty($sn3)) {
    echo('<a href="'.$sn3link.'" target="_blank"><button class="lbutton-content">'.$sn3.'</button></a>');
}

if (!empty($sn4link) && !empty($sn4)) {
    echo('<a href="'.$sn4link.'" target="_blank"><button class="lbutton-content">'.$sn4.'</button></a>');
}

if (!empty($sn5link) && !empty($sn5)) {
    echo('<a href="'.$sn5link.'" target="_blank"><button class="lbutton-content">'.$sn5.'</button></a>');
?>

我希望有一种更优雅的方式来组合这些if语句。我尝试过else if,但显然这只会显示返回TRUE的第一条if语句,而我想返回每条TRUE语句。我也不认为switch可以工作。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-18 04:25:20

为什么不迭代并使用数组呢?

代码语言:javascript
复制
foreach($sn_array as $link => $text):
    if(!empty($link) && !empty($text)) echo ...;
endforeach;
票数 0
EN

Stack Overflow用户

发布于 2012-02-18 04:25:01

可能是一个带有变量的for循环:

代码语言:javascript
复制
<?php

for ($i = 1; $i <= 5; $i++) {

    $link  = 'sn'.$i.'link';
    $button = 'sn'.$i;

    if (!empty($$link) && !empty($$button)) {
        echo('<a href="'.$$link.'" target="_blank"><button class="lbutton-content">'.$$button.'</button></a>');
    }
}
票数 0
EN

Stack Overflow用户

发布于 2012-02-18 04:26:26

您应该使它成为一个循环,其中的值在一个数组中。那么只需要一条if和一条echo语句就可以完成相同的任务。

代码语言:javascript
复制
$snList = array($sn1 => $sn1Link, $sn2 => $sn2Link, $sn3 => $sn3Link);

foreach ($snList as $name => $link) {
   echo('<a href="'.$link.'" target="_blank"><button class="lbutton-content">'.$name.'</button></a>');
}

您甚至不需要if语句,因为如果值不存在,则根本不需要将它们添加到$snList数组中。

代码语言:javascript
复制
$snList = array();
$snList[$key] = $value;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9334773

复制
相关文章

相似问题

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