2013-10-04 156 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>