Как я могу использовать «переменную» в операторе if / или в PHP для условного генерирования оператора? - PullRequest
0 голосов
/ 16 октября 2011

У меня нулевой опыт работы с PHP. Я управляю сайтом WordPress и пытаюсь сделать одну простую модификацию кода. Вот что у меня есть:

    <?php
    if(<?php the_author() ?> == "Joe Man")
    {
    <?php the_author() ?>
    }
    ?>

Я полагаю, что все переменные начинаются с символа $, поэтому то, что у меня есть выше в моем операторе if, не является переменной. Что я делаю? Я также попытался создать переменную, как показано ниже:

    <?php
    $author = <?php the_author() ?>
    if($author == "Joe Man")
    {
    <?php the_author() ?>
    }
    ?>

Ничего из перечисленного не сработало. Итак, мой вопрос, как я могу получить это, если заявление для оценки? Что мне нужно, если the_author - «Joe Man», чтобы строка «Joe Man» отображалась на моей странице.

Это ошибка, которую я получаю, кстати:

Ошибка разбора: синтаксическая ошибка, неожиданная '<' </p>

Спасибо!

Ответы [ 3 ]

4 голосов
/ 16 октября 2011

Вы не можете вкладывать <?php ?> теги.Правильный код будет:

<?php
    $author = get_the_author();
    if ($author == "Joe Man") {
        echo $author;
    }
?>

На самом деле, переменная может быть вообще пропущена, сокращая код до:

<?php
    if (get_the_author() == "Joe Man") {
        the_author();
    }
?>

Обратите внимание на эхо, чтобы распечатать автора.

3 голосов
/ 16 октября 2011

Похоже, вы используете WordPress, поэтому, помимо вашей ошибки PHP-in-PHP, ваш код не будет работать в любом случае, так как оба вызова the_author() просто ВЫХОДУ данных, а не возвращать их для сравнения.Вы бы хотели:

$author = get_the_author();
if ($author == "Joe Man") {
   echo $author;
}

вместо.Как правило, любая функция в Wordpress, которая выполняет вывод, имеет вариант get_...(), который возвращает вместо вывода.

1 голос
/ 16 октября 2011

Если автор "Джо Мэн", выведите автора:

<?php
  $author = the_author();
  if($author == "Joe Man") {
    echo $author;
  }
?>
...