PHP函数问题

时间:2011-09-21 09:28:50

标签: php mysql

我的侧边栏元素生成的PHP函数就像那样

function makeSidebarEl ($side, $name, $lang, $db)
{
    $title='title_'.$lang;
    $txt='txt_'.$lang;
    $query=$db->query("SELECT $title, $txt FROM sidebar WHERE side='$side' AND name='$name'");
    $result=$query->fetch_array(MYSQLI_BOTH);
    $title=makeTitle($result[$title], $lang, $db);
    $txt=makeTxt($result[$txt], $lang, $db);
    echo '<div class="nav">'.$title.$txt.'</div>'."\n";
    }

但我得到的结果是这样的

<div class="nav"></div>
<div class="nav_1"><img border="0" src=core/design/img/left_nav.png alt="" height="25px"/></div>
...

我的意思是它在每个元素的开头打开和关闭<div class="nav"></div>但事实上函数必须在这个div中回显结果:

echo '<div class="nav">'.$title.$text.'</div>'."\n";如何解决这个问题?

更新

function makeTitle($title) {

    echo '<div class="nav_1"><img border="0" src=core/design/img/left_nav.png alt="" height="25px"/></div>
    <div class="nav_2">'.$title.'</div>
    <div class="nav_3"><img border="0" src=core/design/img/left_nav.png alt="" height="25px"/></div>
    <div style="clear:both;"></div>';

    }

function makeTxt($txt) {
    echo '<div id="parts" class="parts_txt">'.$txt.'</div>';
}

2 个答案:

答案 0 :(得分:2)

您需要将echo替换为return makeTitlemakeTxt

答案 1 :(得分:2)

makeTitle()makeText()return字符串而不是echo字符串。

就像现在一样,他们echo在调用它们时发送文本并返回NULL,然后在调用echo '<div class="nav">'.$title.$txt.'</div>'."\n";时将其连接成字符串,即该行的计算结果为{{ 1}}