Php 函数bug中的echo函数
我有以下PHP代码:Php 函数bug中的echo函数,php,html,function,Php,Html,Function,我有以下PHP代码: function button1($attr, $text) { $data = "<button "; foreach($attr as $names => $specs) { $data .= $names . "='" . $specs . "' "; } $data .= ">" . $text . "</button>\n"; echo $data; } function span1($attr, $
function button1($attr, $text) {
$data = "<button ";
foreach($attr as $names => $specs) {
$data .= $names . "='" . $specs . "' ";
}
$data .= ">" . $text . "</button>\n";
echo $data;
}
function span1($attr, $text) {
$data = "<span ";
foreach($attr as $names => $specs) {
$data .= $names . "='" . $specs . "' ";
}
$data .= ">" . $text . "</span>\n";
echo $data;
}
button1(
array( "type" => "button",
"class" => "navbar-toggle",
"data-toggle" => "collapse",
"data-target" => ".navbar-collapse"
),
span1(
array( "class" => "sr-only" ),
"Toggle navigation"
)
);
功能按钮1($attr,$text){
$data=“”.$text。“\n”;
foreach($attr as $names => $specs)
{
$data .= $names . "='" . $specs . "' ";
}
$data .= ">" . $text . "</button>\n";
return $data;
}
function span1($attr, $text)
{
$data = "<span ";
foreach($attr as $names => $specs)
{
$data .= $names . "='" . $specs . "' ";
}
$data .= ">" . $text . "</span>\n";
return $data;
}
$str = span1(
array( "class" => "sr-only" ),
"Toggle navigation"
);
回波数据;
}
函数span1($attr,$text){
$data=“”.$text。“\n”;
foreach($attr as $names => $specs)
{
$data .= $names . "='" . $specs . "' ";
}
$data .= ">" . $text . "</button>\n";
return $data;
}
function span1($attr, $text)
{
$data = "<span ";
foreach($attr as $names => $specs)
{
$data .= $names . "='" . $specs . "' ";
}
$data .= ">" . $text . "</span>\n";
return $data;
}
$str = span1(
array( "class" => "sr-only" ),
"Toggle navigation"
);
回波数据;
}
按钮1(
数组(“键入”=>“按钮”,
“类”=>“导航栏切换”,
“数据切换”=>“折叠”,
“数据目标“=>”。导航栏折叠”
),
span1(
数组(“类”=>“仅限sr”),
“切换导航”
)
);
根据上面的代码,我希望结果如下所示:
<button type='button' class='navbar-toggle' data-toggle='collapse' data-target='.navbar-collapse' >
<span class='sr-only' >Toggle navigation</span>
</button>
<span class='sr-only' >Toggle navigation</span>
<button type='button' class='navbar-toggle' data-toggle='collapse' data-target='.navbar-collapse' ></button>
切换导航
但事实上,它看起来是这样的:
<button type='button' class='navbar-toggle' data-toggle='collapse' data-target='.navbar-collapse' >
<span class='sr-only' >Toggle navigation</span>
</button>
<span class='sr-only' >Toggle navigation</span>
<button type='button' class='navbar-toggle' data-toggle='collapse' data-target='.navbar-collapse' ></button>
切换导航
我必须做什么才能得到我想要的结果?感谢您的帮助。简单,永不
echo
来自函数。问题是,span1()
首先被求值,这导致其echo
执行。它也不返回任何用作button1()
$text
参数的内容。然后执行button1()
echo
,在span1()
echo之后将其内容打印到输出流
将每个函数的最后一行更改为
return $data;
并通过
echo button1(...);
用以下代码替换PHP代码:, 您必须
将$data
返回到函数中,还必须回显按钮1()
你好,请使用下面的代码获得所需的输出
功能按钮1($attr,$text)
{
$data=”
foreach($attr as $names => $specs)
{
$data .= $names . "='" . $specs . "' ";
}
$data .= ">" . $text . "</button>\n";
return $data;
}
function span1($attr, $text)
{
$data = "<span ";
foreach($attr as $names => $specs)
{
$data .= $names . "='" . $specs . "' ";
}
$data .= ">" . $text . "</span>\n";
return $data;
}
$str = span1(
array( "class" => "sr-only" ),
"Toggle navigation"
);
foreach($attr as$names=>$specs)
{
$data.=$names.“='”$specs.“'”;
}
$data.=“>”$text.\n;
返回$data;
}
函数span1($attr,$text)
{
$data=“”.$text。“\n”;
foreach($attr as $names => $specs)
{
$data .= $names . "='" . $specs . "' ";
}
$data .= ">" . $text . "</button>\n";
return $data;
}
function span1($attr, $text)
{
$data = "<span ";
foreach($attr as $names => $specs)
{
$data .= $names . "='" . $specs . "' ";
}
$data .= ">" . $text . "</span>\n";
return $data;
}
$str = span1(
array( "class" => "sr-only" ),
"Toggle navigation"
);
返回$data;
}
$str=span1(
数组(“类”=>“仅限sr”),
“切换导航”
);
回声按钮1(
数组(“键入”=>“按钮”,
“类”=>“导航栏切换”,
“数据切换”=>“折叠”,
“数据目标“=>”。导航栏折叠”
),
$str
)看看这个:@rohit太好了,谢谢你的回答,它对我很有效,但是如果我必须在我的视图中一个接一个地包含ECHO,我会觉得很烦人,因为我在我的函数中使用ECHO。有什么建议吗?你应该根据你的代码研究函数的执行情况:第一次调用这个span1函数中的button1函数就会执行。如果ECHO有什么span1函数,然后它将首先回显。然后执行button1。如果回显任何button1函数,那么它将回显。因此,您从代码中得到的输出是这样的。太好了,谢谢您的回答,它对我有效,现在我知道函数规则永远不会从中回显,但如果我必须在我的视图一个接一个,正因为如此,我在函数中使用了echo,有什么建议吗?@MuhammadZaidTaufiq在MVC模式中,视图是生成输出的地方,因此echo
应该在那里。