0

我有一个变量 $boo 包含纯文本行,例如(带有单数换行符):

一个

b

C

我想要一个将其格式化为项目符号列表的函数。想出了以下内容,但无法安静地输出任何内容:

<?php
function listformat ($list) {
    $listformat = explode("\n", $listformat);
    foreach ($listformat as $test => $line) {
        return "<li>".$line."</li>";
    };
};
?>

<ul>
<?php
listformat ($boo);
?>
</ul>

如果我使用 echo 代替“return”并删除该功能,它会起作用。

4

3 回答 3

2

return结束你的函数并将语句发送回调用它的任何地方。所以,是的,回声是必要的

<?php
function listformat ($list) {
    $listformat = explode("\n", $list);
    foreach ($listformat as $line) {
        echo "<li>".$line."</li>";
    };
};

echo '<ul>';
listformat($my_list_var);
echo '</ul>';
于 2013-11-12T00:53:39.367 回答
0

您仍然可以保留该函数,但不是echoor return,而是使用局部变量构建 HTML 输出并在最后返回它:

<?php
function listformat ($list) {
    $output = '<ul>';
    $listformat = explode("\n", $list);
    foreach ($listformat as $test => $line) {
        $output .= "<li>".$line."</li>";
    };
    return $output.'</ul>';
};
?>

现在,您可以在任何地方使用您的函数,并回显返回的值或做任何您想做的事情:

<?php
echo(listformat($list));
?>
于 2013-11-12T00:55:43.377 回答
0

最简单的方法:

function ln2ul($string) {
  return '<ul><li>' . str_replace("\n", '</li><li>', trim($string)) . '</li></ul>';
}
于 2017-11-16T13:42:47.733 回答