PHP помощь с использованием переменных внутри кода - PullRequest
0 голосов
/ 05 февраля 2011

У меня есть эта строка кода: <?php global $bp; query_posts( 'author=$bp->displayed_user->id' ); if (have_posts()) : ?>, но она не работает, как ожидалось.Возможно, потому что он не правильно захватывает часть $bp->displayed_user->id.Как мне это сделать?

Спасибо

Ответы [ 3 ]

3 голосов
/ 05 февраля 2011
<?php global $bp; query_posts( 'author=' . $bp->displayed_user->id ); if (have_posts()) : ?>

В одинарных строках в кавычках переменные расширяться не будут. Смотри документацию здесь: http://php.net/manual/en/language.types.string.php

1 голос
/ 05 февраля 2011

Он не работает, потому что он обрабатывает 'author=$bp->displayed_user->id' как строку, а не вставляет содержимое переменной. (Это основное различие между использованием одинарных и двойных кавычек. Для получения дополнительной информации прочитайте страницу справки PHP strings .)

Чтобы это исправить, попробуйте либо:

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

или

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

Тем не менее, я лично рекомендую первый подход, так как он более четко описывает происходящее.

1 голос
/ 05 февраля 2011

Использование одинарных кавычек заставляет 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()) :  
?>
...