PHP里面有一个" echo"。在这种情况下如何做到这一点?

时间:2014-05-02 09:04:26

标签: php html wordpress echo

我正在尝试在echo中执行另一个PHP函数。我可以改变

<?php echo home_url(); ?>

"$home_url"

并且有效。

但我不知道如何更改以下内容:

<?php $categories = get_the_category();
    $cat_slug = $categories[0]->slug;
    echo "$cat_slug" ?>

这是我的完整代码,使用HEREDOC代替“”:

<?php   
if( is_page( 3769 ) ):  
    echo 'ANOTHER LOGO';  
else:  
    echo <<<HTML
<a href="$home_url"><img border="0" src="http://WEBSITE.COM/logo<?php $categories = get_the_category();
$cat_slug = $categories[0]->slug;
echo "$cat_slug" ?>
.png" width="500" height="100"></a>
HTML;
endif;     
?>  

谢谢。

4 个答案:

答案 0 :(得分:1)

从字符串中取出函数调用:

<?php   
if( is_page( 3769 ) ):  
    echo 'ANOTHER LOGO';  
else:  
    $categories = get_the_category();
    $cat_slug = $categories[0]->slug;
    echo <<<HTML
    <a href="$home_url"><img border="0" src="http://WEBSITE.COM/logo{$cat_slug}.png" width="500" height="100"></a>
    HTML;
endif;     
?> 

答案 1 :(得分:1)

通常你不应该在echo中执行任何函数。最好事先做好所有“准备工作”并回应结果。这样,稍后拆分逻辑和演示文稿就更简单了

<?php   
if( is_page( 3769 ) ):  
    echo 'ANOTHER LOGO';  
else:  
$categories = get_the_category();
$cat_slug = $categories[0]->slug;
    echo <<<HTML
<a href="$home_url"><img border="0" src="http://WEBSITE.COM/logo{$cat_slug}.png" width="500" height="100"></a>
HTML;
endif;     
?> 

答案 2 :(得分:0)

使用单引号,"$cat_slug"关闭第一个(“)

src="http://WEBSITE.COM/logo<?php $categories = get_the_category();
$cat_slug = $categories[0]->slug;
echo "$cat_slug" ?>

将其更改为:

src='http://WEBSITE.COM/logo<?php $categories = get_the_category();
    $cat_slug = $categories[0]->slug;
    echo "$cat_slug" ?>'

答案 3 :(得分:0)

查看您提供的代码块我已经使用了类似的内容

<?php   
if( is_page( 3769 ) ):  
    echo 'ANOTHER LOGO';  
else:
 $categories = get_the_category();
 $cat_slug = $categories[0]->slug;

 echo '<a href="$home_url"><img border="0" src="http://WEBSITE.COM/logo'.$cat_slug.png.'" width="500" height="100"></a>'

endif;     
?> 

否则你正在做一个双回声,这可能会导致一些问题。