【问题标题】:how to put a foreach loop within an elseif clause如何在 elseif 子句中放置一个 foreach 循环
【发布时间】:2014-06-11 07:02:38
【问题描述】:

如果标题 == MainPage 或类别 == Portal,我不想展示广告。 我正在尝试创建一个 if、elseif、else 语句,但我不确定将 foreach 循环放在哪里。 这是我的代码:

<?php
     $id =  $wgTitle->getArticleID();
        $dbr = wfGetDB( DB_SLAVE );
        $result = $dbr->query("SELECT page_id FROM wiki_page ORDER BY page_latest");
        while( $row = $dbr->fetchObject( $result ) ) {              
        foreach($row as $page_id){$m_array = array($page_id);}
        }
        $title = Title::newFromText( $wgRequest->getVal( 'title' ) );
        $categories = $title->getParentCategories();

    if(in_array($id, $m_array)){
        if($wgTitle == "Main Page"){} 
        foreach ($categories as $category => $article_title){
         elseif($category == 'Category:Portal'){ echo "no ads";}
        }       
        else{echo 'show ads';}
    } 
    ?>

我不能将 elseif 放在 foreach 循环中,但是如何指定 $category 子句?如果我将整个代码包装在 foreach 循环中,那么广告会显示多次,因为某些页面有多个类别。

(媒体维基网站) 谢谢

【问题讨论】:

  • 这是php?请包含语言标签

标签: php if-statement foreach mediawiki


【解决方案1】:

您使用布尔值来存储测试结果。考虑一下:

$ok = $title != 'Main Page';
foreach($categories as $c => $at) $ok = $ok && $c != 'Category:Portal';
if($ok) echo "show ads";
else echo "no ads";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    相关资源
    最近更新 更多