1

我想附加一个 php 函数,例如:dtlan(text)< 到 <li>标签中,但我有一个问题。我现在将显示我的代码和输出:

echo "<a href=/".$array['id']."><li id='menu_".$array['id']."'>"
     .dtlan($array['name'])."</li></a>";

输出必须是这样的:

<a href='/2'> <li id='2'>wazaap </li></a>

实际输出为:

   wazaaap
    <a href='/2'><li id='2'></li></a>

多数民众赞成在功能首先运行。现在我的问题是如何将函数插入标签。谢谢大家,对不起我丑陋的英语:D

4

2 回答 2

2

我认为(或者我很确定)该函数不返回值,而是回显它。

因为在构建要回显的字符串的过程中调用了该函数。这意味着,在回显 html 时,该函数已经回显了它的值。这就是函数结果显示在 html 之前的原因。

要么让函数返回值而不是回显它:

function dtlan($x)
{
  // echo $x;  <- Not like this
  return $x; // But like this.
}

或者这样做:首先回显第一部分。然后让函数回显它的部分。然后呼应结束部分。

echo "<a href=/".$array['id']."><li id='menu_".$array['id']."'>";
dtlan($array['name']);
echo "</li></a>";

如果你有选择,我会选择第一个。

于 2012-09-22T10:09:54.423 回答
0

PHP 使用您的 HTML 创建一个新字符串。解析从左到右进行,PHP 解析所有变量。然后它进入函数dtlan(将其推入堆栈)并dtlan似乎调用了 echo 并且不返回任何内容。空返回被转换成一个空字符串。

然后你的标记的其余部分被连接起来并传递给函数echo(它有一个特殊的语法,使得括号不是强制性的)。

echo 调用的结果顺序是:

echo("wazaaap");
echo("<a href='/2'><li id='2'></li></a>");
于 2012-09-22T10:26:37.160 回答