如果 else 语句返回两者而不是一个


If else statement returning both instead of one?

这是我的第一个PHP if语句,如果我犯了一个愚蠢的错误,请耐心等待!

我正在运行 pmWiki,并且组名称有两个变量。 $Group是没有空格的组名(例如 EasyCatalog),$Groupspace是带空格的组名(例如 Easy Catalog)。

我想检查$Groupspaced =="简易目录",如果为 true,则返回$Group变量,否则返回$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>

我遇到的问题是它返回两个链接而不是一个。

看来您正在使用 Smarty:如果否则,请使用其语法:

{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 阅读更多

内容

我看到这不是一个聪明的人:这是pmWiki,如果其他语法:

(: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

你的代码对我来说似乎是对的,但我个人不喜欢使用这样的语句,你可能想尝试一下:

 <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>

希望它有效

<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>

尝试这样做以确保您的理论是错误的,然后解决您的问题:

<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>

现在,由于您使用的是智能模板,这是正确的智能if/else语法:

<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>