2013-10-04 158 views
3

這是我的第一個PHP if語句,如果我犯了一個愚蠢的錯誤,那麼我就忍受着這個錯誤!如果else語句返回兩個而不是一個?

我正在運行pmWiki併爲組名命名有兩個變量。 $ Group是不帶空格的組名(例如EasyCatalog),$ Groupspace是帶空格的組名(例如Easy Catalog)。

我要檢查,如果$ Groupspaced == 「簡易目錄」,如果爲true,則返回$組變量,否則返回$ Groupspaced

這是我的代碼:

  <p class="grouptitle"> 
       <?php if ($Groupspaced == "Easy Catalog") : ?> 
        <a href='{$ScriptUrl}/{$Group}' class="pagegroup">{$Group}</a> 
       <?php else : ?> 
        <a href='{$ScriptUrl}/{$Group}' class="pagegroup">{$Groupspaced}</a> 
       <?php endif; ?> 
      </p> 

這個問題我我的意思是,它不是回到兩個鏈接。

+1

給你發佈的代碼那是不可能的。有**沒有辦法**「搞砸」一個「if」語句,以便評估兩個分支。從根本上講,**不可能做到這一點,沒有錯誤可能會導致這種行爲。你錯誤地解釋了你的錯誤。 – meagar

+2

嗯,它似乎你正在使用Smarty或類似的東西。在這種情況下,你應該使用他們的if else語句來代替clean php – bksi

+0

我知道這是根本不可能的,這就是爲什麼它讓我感到困惑的原因。這一定與pmWiki有關。 – Matt

回答

1

看來你正在使用的Smarty:使用其語法的if else:

{if $Groupspaced eq 'Easy Catalog'} 
    <a href='{$ScriptUrl}/{$Group}' class="pagegroup">{$Group}</a> 
{else} 
    <a href='{$ScriptUrl}/{$Group}' class="pagegroup">{$Groupspaced}</a> 
{/if} 

更可以在http://www.smarty.net/docsv2/en/language.function.if.tpl

讀我看,這是不是一個smarty: 這裏是pmWiki if else語法:

(:if cond param:) body (:else:) body (:ifend:) 

在你的情況下,代碼應該是:

(:if equal "{$Groupspaced}" "Easy Catalog":) 
    <a href='{$ScriptUrl}/{$Group}' class="pagegroup">{$Group}</a> 
(:else:) 
    <a href='{$ScriptUrl}/{$Group}' class="pagegroup">{$Group}</a> 
(:ifend:) 

我得到這個從這裏:http://www.pmwiki.org/wiki/Cookbook/ConditionalMarkupSamples

+0

嗨,它似乎沒有工作。我在Web瀏覽器中獲得以下內容:http://imgur.com/Pbrz0wc – Matt

+0

模板引擎'TinyButStrong'是否意味着什麼? – Matt

+0

它可能不聰明。我不能告訴任何事情,直到你沒有給出其他的代碼(例如控制器) – bksi

-1

試試這個,以確保你的理論是錯誤的,那麼解決您的問題:

<p class="grouptitle"> 
    <?php 
    $Groupspaced = "Easy Catalog2"; 
    if ($Groupspaced == "Easy Catalog") : ?> 
    <a href='blablabla1' class="pagegroup">Group 1</a> 
    <?php else : ?> 
    <a href='blablabla2' class="pagegroup">Group spaced 2</a> 
    <?php endif; ?> 
</p> 

現在,因爲你正在使用Smarty的模板,這是正確的smarty if/else syntax

<p class="grouptitle"> 

    {if $Groupspaced eq "Easy Catalog"} 
    <a href='{$ScriptUrl}/{$Group}' class="pagegroup">Group 1</a> 
    {else} 
    <a href='{$ScriptUrl}/{$Group}' class="pagegroup">Group spaced 2</a> 
    {/if} 
</p> 
-1

你的代碼似乎對我來說,但我個人不喜歡使用如果這樣的陳述,你可能想試試這個:

<p class="grouptitle"> 
       <?php if ($Groupspaced == "Easy Catalog") { ?> 
        <a href='{$ScriptUrl}/{$Group}' class="pagegroup">{$Group}</a> 
       <?php } else { ?> 
        <a href='{$ScriptUrl}/{$Group}' class="pagegroup">{$Groupspaced}</a> 
       <?php } ?> 
      </p> 

希望它工作的

+1

如果他使用Smarty,會產生同樣的問題 – bksi

+0

不知道這一點,感謝您的信息。 – Fabio

-1
<p class="grouptitle"> 
       <?php 
        if ($Groupspaced == "Easy Catalog") 
        { 
         echo " <a href='{$ScriptUrl}/{$Group}' class='pagegroup'>{$Group}</a>"; 
        } 
        else{ 
         echo " <a href='{$ScriptUrl}/{$Group}' class='pagegroup'>{$Groupspaced}</a>"; 
        } 
        ?> 
</p>