带有链接的PHP if语句

时间:2011-12-29 17:39:32

标签: php if-statement

我正在尝试编写IF语句,以便当用户在某个页面上时,将显示其他内容。我写了这个:

<?php
if (strpos($_SERVER['PHP_SELF'], 'about.php')){
        <ul class="vertical-list">
        <li><a href='/' class='button' onclick="return false;">Work Experience</a></li>
        <li><a href='/' class='button' onclick="return false;">Education</a></li>
        <li><a href='/' class='button' onclick="return false;">Skills</a></li>
        <li><a href='/' class='button' onclick="return false;">Portfolio</a></li>
        </ul>;
}
?>

因此,当用户在about页面上时,导航列表将填充在侧栏中,但如果用户导航离开about页面,则会隐藏导航列表。当前代码给出了这个错误: Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\includes\sidebar.php on line 54

3 个答案:

答案 0 :(得分:2)

PHP strpos返回0基础的成功结果,因此您需要正确测试“未找到”结果,并且需要关闭并重新打开PHP标记:

<?php
if (strpos($_SERVER['PHP_SELF'], 'about.php') !== false){ 
?>
        <ul class="vertical-list">
        <li><a href='/' class='button' onclick="return false;">Work Experience</a></li>
        <li><a href='/' class='button' onclick="return false;">Education</a></li>
        <li><a href='/' class='button' onclick="return false;">Skills</a></li>
        <li><a href='/' class='button' onclick="return false;">Portfolio</a></li>
        </ul>;
<?php
}
?>

答案 1 :(得分:2)

您忘记了实际显示HTML。使用echo或退出PHP以显示HTML。

答案 2 :(得分:1)

您需要在if语句后关闭PHP标记,如下所示:

  <?php
  if (strpos($_SERVER['PHP_SELF'], 'about.php')) { ?>
       <ul>
           ...
       </ul>

  <?php
  }
  ?>

除非将其回显或关闭PHP标记,否则不能将常规HTML放在PHP标记内。我个人更喜欢关闭PHP标签,因为它使得阅读HTML变得更容易。

希望有所帮助。祝你好运。