2011-10-15 26 views
-1

我对PHP没有经验。我运行一个WordPress站点,并试图对代码进行一个简单的修改。这是我有什么:如何在PHP的if/or语句中使用“变量”来有条件地生成语句?

<?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”将显示在我的页面上。

这是错误我得到BTW:

解析错误:语法错误,意想不到的 '<'

谢谢!

+0

PHP in PHP ...新的开始! –

+0

大声笑不知道我已经走了那么远 – kyphos

回答

4

您不能嵌套<?php ?>标签。正确的代码是:

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

实际上,变量可以被一起跳过,代码缩短:

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

注回声打印出作者。

+0

当然,你的意思是在顶部的例子,而不是the_author()回声$作者。如果你不这样做,它会使变量赋值毫无意义。 – calumbrodie

+0

因此我说变量可以完全跳过。虽然你是对的。我会解决的。 –

+0

我现在明白了。但是奇怪的事情正在发生。只需要这么一点代码:the_author();不管在哪里,在我的页面上显示名称。对于缩短的版本,如果the_author是Joe Man,Joe Man出现三次:一次用于echo命令,两次用于代码中the_author的两个实例。 – kyphos

1

如果作者是“乔人”,输出作者:

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

你说的是什么作品,但由于某种原因,运行这一段代码:the_author();无论在哪里,都会在页面上显示名称。有没有办法抑制这一点? – kyphos

3

看起来像你使用WordPress,所以超越你的PHP功能于PHP的错误,你的代码将无法反正工作,因为the_author()调用都将简单地输出数据,而不是将其返回以进行比较。你想要:

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

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