Как переписать php echo с помощью << - PullRequest
3 голосов
/ 20 февраля 2011

Мне интересно, как переписать этот код для работы с qq:

    $containerRight = <<<qq
    <div class="container_right">
        {echoLikeBox()}

        <div class="join_us"><a href="#"><img src="images/join_us.png" width="304" height="44" alt=""></a></div>

        <div class="box2"><a href="#"><img src="images/twitter_big.gif" width="304" height="292" alt=""></a></div>

        <div class="box3"><a href="#"><img src="images/facebook.jpg" width="304" height="257" alt=""></a></div>

        <div class="box4"><a href="#"><img src="images/google_ads.gif" width="304" height="164" alt=""></a></div>
    <!-- container_right end --></div>;
    qq;
    echo $containerRight;  

Проблема в том, что я не знаю, как отобразить функцию внутри <<<. Код для echoLikBox () такой: </p>

function echoLikeBox()
{
    $likeBox = <<<qq
    <div class="box1">
            <div class="box1_lft"><a href="#"><img src="images/tweet.jpg" width="108" height="20" alt=""></a></div>
            <div class="box1_rht"><a href="#"><img src="images/like.jpg" width="82" height="20" alt=""></a></div>
            <div class="clear"></div>
    </div><!-- box1 end -->
    qq;
    echo $likeBox;
}  

Спасибо за вашу помощь.

edit: нашел решение здесь: Вызов функций PHP внутри строк HEREDOC

Извините за двойную публикацию.

1 Ответ

5 голосов
/ 20 февраля 2011

Возможно, вы захотите изменить функцию echoLikeBox (), чтобы вместо отображения ее содержимого сохранять их в виде строки.Вы не можете вызвать функцию внутри строк heredoc, но вы можете вывести переменные.Так, например, вы можете иметь:

function echoLikeBox()
{
    $likeBox = <<<qq
    <div class="box1">
            <div class="box1_lft"><a href="#"><img src="images/tweet.jpg" width="108" height="20" alt=""></a></div>
            <div class="box1_rht"><a href="#"><img src="images/like.jpg" width="82" height="20" alt=""></a></div>
            <div class="clear"></div>
    </div><!-- box1 end -->
qq;
    return $likeBox;
}

, а затем просто

$likeBox = echoLikeBox();

$containerRight = <<<qq
    <div class="container_right">
        $likeBox

        ...

внутри основного тела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...