2011-02-05 42 views
0

我有这行代码:<?php global $bp; query_posts('author=$bp->displayed_user->id'); if (have_posts()) : ?>但它不能按预期方式工作。可能是因为它没有正确抓取$bp->displayed_user->id部件。我该怎么做?PHP帮助使用内部变量代码

感谢

回答

1

而不是内联变量的内容。 (这是使用单引号和双引号之间的主要区别有PHP strings手册页的读取更多的信息。)

为了解决这个问题,尝试两种:

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

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

也就是说,我会亲自推荐第一种方法,因为它更明确发生了什么事情。

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

在单引号字符串变量将不会扩大。在此处查看文档:http://php.net/manual/en/language.types.string.php

+0

我没跟着。那么我如何将id传给作者位呢? – Cameron 2011-02-05 14:30:56

+0

Dot连接两个字符串 - 'author ='和$ bp-> displayed_user-> id,导致类似'author = 5'。 – Tomik 2011-02-05 14:35:01

1

使用单引号会导致PHP无法获取变量值。 而不是使用单引号的,你可以使用双引号:

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

还是这样(我THIK是更好):因为它的治疗'author=$bp->displayed_user->id'作为一个字符串它不工作

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

请注意,您的第一个解决方案不起作用。 “$ a-> b”有效,但“$ a-> b-> c”不起作用。不知道为什么。 – Tomik 2011-02-05 14:33:37