如何在PHP中的if /或语句中使用“变量”来有条件地生成语句?

时间:2011-10-15 23:16:47

标签: php variables if-statement parse-error

我对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() ?>
    }
    ?>

上述两种方法均无效。所以我的问题是我如何得到if语句来评估?我需要的是如果the_author是“Joe Man”,我的页面上会显示字符串“Joe Man”。

这是我得到的错误:

解析错误:语法错误,意外'&lt;'

谢谢!

3 个答案:

答案 0 :(得分:4)

您可能无法嵌套<?php ?>个标签。正确的代码是:

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

实际上,可以完全跳过变量,将代码缩短为:

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

注意回声以打印出作者。

答案 1 :(得分:3)

看起来你正在使用wordpress,因此除了你的PHP-in-PHP错误之外,你的代码无论如何都不会工作,因为the_author()调用只会输出数据,而不是返回它进行比较。你想要:

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

代替。作为一般规则,Wordpress中输出的任何函数都有一个get_...()变量,它返回而不是输出。

答案 2 :(得分:1)

如果作者是“Joe Man”,则输出作者:

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