2011-02-05 13 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