Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Оператор PHP if со ссылками

Автор вопроса: NickОтветов: 3

Я пытаюсь написать оператор 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>;
}
?>

Таким образом, когда пользователь находится на странице сведений, список навигации будет отображаться на боковой панели, но будет скрыт, если пользователь уйдет со страницы сведений. Текущий код дает мне эту ошибку: Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\includes\sidebar.php on line 54

  • как насчет того, чтобы действовать так, как вы не ожидали? Greg Guida 29.12.2011

phpif-statement

Ответы

Ответ 1 · рейтинг 2 · Matt H

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

Ответ 2 · рейтинг 2 · VettelS

Вы забыли отобразить HTML. Либо используйте echo, либо отключите PHP для отображения HTML.

Ответ 3 · рейтинг 1 · Jemaclus

Вам нужно закрыть тег PHP после оператора if, например:

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

  <?php
  }
  ?>

Вы не можете поместить обычный HTML в теги PHP, если вы не повторите его или не закроете теги PHP. Лично я предпочитаю закрывать теги PHP, так как это облегчает чтение HTML.

Надеюсь, это поможет. Удачи.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы