PHP帮助使用变量内部代码

时间:2011-02-05 14:26:15

标签: php wordpress buddypress

我有这行代码:<?php global $bp; query_posts( 'author=$bp->displayed_user->id' ); if (have_posts()) : ?>但它没有按预期工作。可能是因为它没有正确地抓住$bp->displayed_user->id部分。我该怎么做?

由于

3 个答案:

答案 0 :(得分:3)

<?php global $bp; query_posts( 'author=' . $bp->displayed_user->id ); if (have_posts()) : ?>

在单引号字符串中,变量不会被展开。请参阅此处的文档:http://php.net/manual/en/language.types.string.php

答案 1 :(得分:1)

使用单引号使PHP无法获取变量值。 您可以使用双引号代替使用单引号:

<?php 
    global $bp; 
    query_posts( "author={$bp->displayed_user->id}" ); if (have_posts()) : 
?>

或者这样(我觉得这样更好):

<?php 
    global $bp; 
    query_posts( 'author=' . $bp->displayed_user->id ); if (have_posts()) :  
?>

答案 2 :(得分:1)

它不起作用,因为它将'author=$bp->displayed_user->id'视为字符串而不是内联变量的内容。 (这是使用单引号和双引号之间的主要区别。请阅读PHP strings手册页以获取更多信息。)

要解决此问题,请尝试:

query_posts('author=' . $bp->displayed_user->id);

query_posts("author={$bp->displayed_user->id}");

那就是说,我个人推荐第一种方法,因为它更明确地发生了什么。