PHP 回显函数更改 html 输出的顺序?

PHP echo function changing order of html output?

函数 getUserAvatar 输出如下:

 <img src="http://pathtoimage/image.jpg" height="16" width="16" alt="avatar" />

我在特定的 div 中调用它。

当我这样称呼它时,效果很好:

 echo '<div class="avatar">';
 echo getUserAvatar($avatar_id);
 echo '</div>';

导致以下 html 输出:

 <div class="avatar"><img src="http://pathtoimage/image.jpg" height="16" width="16" alt="avatar" /></div>

但是当我尝试将所有内容放在一行时:

 echo '<div class="avatar">' .getUserAvatar($avatar_id). '</div>';

它会导致以下 html,在呈现 div 标记之前执行函数? :

 <img src="http://pathtoimage/image.jpg" height="16" width="16" alt="avatar" /><div class="avatar"></div>

有人可以解释这是为什么并提供正确的解决方案吗?

<?php
function getUserAvatar($avatar_id) {
    // your function body
    return $your_return_id;
}

echo '<div class="avatar">' .getUserAvatar($avatar_id). '</div>';