【问题标题】:PHP if/then to display link [closed]PHP if/then 显示链接 [关闭]
【发布时间】:2014-04-24 21:52:27
【问题描述】:

我正在尝试显示“登录”/“注销”链接。如果他们没有登录等,我想显示登录链接。我无法让它工作。这是我一直在尝试的:

<?php if (isset($_SESSION['access_token'])) 
 { ?> <a href="logout.php">Log out</a><?php } ?>
<?php
else 
{ ?> <a href="login.php">Log In</a>  <?php } ?>

基本上,如果设置了assess_token,它将显示一个注销链接。如果没有,一个登录链接。我一直认为这是一个错误:

解析错误:语法错误,意外的 T_ELSE

我已经尝试过这种变化:

<?php if (isset($_SESSION['access_token'])) 
{ echo "<a href="logout.php">Log out</a>" }
else 
{ echo "<a href="login.p">Log In</a>" } ?>

这让我明白了:

解析错误:语法错误,意外的 T_STRING,需要 ',' 或 ';'

我在这里错过了什么?

【问题讨论】:

  • 看起来您在 echo 语句之后缺少分号
  • 那个“重复”肯定是所有 PHP 错误问题之母。但是,它没有提及任何错误消息(没有提及 T_ELSE 或 T_STRING)。这不是那个问题的重复。
  • 不确定为什么在第一个示例中会出现错误,但我会使用第二种形式——更容易阅读。一旦你纠正了@Carpetsmoker 发现的问题,你就可以开始了。
  • 我认为第一个示例的问题是 else 之前的?&gt;&lt;?php - PHP 解释器无法处理。试试看:if($test) {} ?&gt;&lt;?php else {} ?&gt;

标签: php url if-statement echo


【解决方案1】:

您有 2 个示例,并且都有语法错误:

Parse error: syntax error, unexpected T_ELSE

如果您格式化您的代码正确,您会发现错误:

<?php
    if (isset($_SESSION['access_token'])) {
        ?> <a href="logout.php">Log out</a><?php
    } else {
        ?> <a href="login.php">Log In</a> <?php
    }
?>

那个:

<?php } ?>
<?php
else 
{ ?>

无效。 PHP解释器无法处理这个!请使用&lt;?php } else { ?&gt;

第二个:使用语法高亮编辑器!您会看到语法不正确。 转义代码中的",你忘记了回显后的;

<?php
    if(isset($_SESSION['access_token'])) {
        echo "<a href=\"logout.php\">Log out</a>";
    } else {
        echo "<a href=\"login.php\">Log In</a>";
    }
?>

【讨论】:

    【解决方案2】:

    这很正常。看看你的回声。只有双引号。您必须使用(例如)双引号来表示回显,并使用单引号来分隔 logout.php 和 login.php

    echo "<a href='logout.php'>Log out</a>";
    

    【讨论】:

    • 另外,虽然您的示例显示了 ;,但 OP 的代码也没有。
    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多