2011-02-05 16 views
0

私はこのコード行を持っています:<?php global $bp; query_posts('author=$bp->displayed_user->id'); if (have_posts()) : ?>しかし、期待どおりに動作しません。おそらく、$bp->displayed_user->id部分を正しく把握していない可能性があります。どうすればいいのですか?変数は展開されません単一引用符で囲まれた文字列でPHP内部で変数を使用する際のPHPのヘルプ

おかげ

答えて

1

それは文字列として'author=$bp->displayed_user->id'の治療ですので、それが動作していない 代わりに単一引用符を使用してのあなたは、二重引用符を使用することができます変数の内容をインライン展開するのではなく、 (これは、単一引用符と二重引用符を使用しての主な違いです詳しくは、PHP stringsマニュアルページの読み取りを持っている。。)

これを修正するには、いずれかを試してみてください。

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

または

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

私はと個人的にはが最初のアプローチを推奨していると言いました。

+1

第2の解決策は機能しません。この場合、中括弧が必要です。 – Tomik

+0

@トミク良い点 - 私は答えによって改訂しました。ヘッドアップをありがとう。 :-) –

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

+0

ドットは 'author ='と$ bp-> displayed_user-> idという2つの文字列を連結し、 'author = 5'のようなものになります。 – Tomik

1

PHPは可変引用符を使用しません。

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

それともこの方法(私はそれが優れているthik):

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

最初の解決策は機能しません。 "$ a-> b"は動作しますが、 "$ a-> b-> c"は機能しません。理由は分かりません。 – Tomik

+0

{}を使用して固定: –

関連する問題