为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 PHP 会为我的表代码生成乱码 HTML?

为什么 PHP 会为我的表代码生成乱码 HTML?

吃鸡游戏 2023-10-10 16:55:10
我创建了一个热图函数,我将使用它来使用 PHP 7.2 填充 html 表格的单元格。这是我的功能:function bg($latency) {    if ($latency ==0) {echo '#11FFFF';}     elseif ($latency <30) {echo '#22FFFF';}     elseif ($latency <60) {echo '#33FFFF';}     elseif ($latency <90) {echo '#44FFFF';}     elseif ($latency <120) {echo '#55FFFF';}     elseif ($latency <150) {echo '#66FFFF';}     elseif ($latency <180) {echo '#77FFFF';}     elseif ($latency <210) {echo '#88FFFF';}     elseif ($latency <240) {echo '#99FFFF';}     elseif ($latency <270) {echo '#AAFFFF';}     elseif ($latency <300) {echo '#BBFFFF';}     elseif ($latency >=300) {echo '#CCB27F';} }我使用简单的 select 语句从 MySQL 表中提取值,然后尝试使用以下代码片段构建表:while($row = mysqli_fetch_assoc($result)) {    echo '<tr><td>'.$row['origin'].'</td><td bgcolor='.bg($row['lt01']).'>'.$row['lt01'].'</td></tr>';}但由于某种原因,输出出现乱码,函数输出出现在 HTML 源代码之前:#11FFFF<tr><td>LT01</td><td bgcolor=>0</td></tr>#22FFFF<tr><td>LT02</td><td bgcolor=>11</td></tr>#44FFFF<tr><td>LT03</td><td bgcolor=>62</td></tr>#44FFFF<tr><td>LT04</td><td bgcolor=>74</td></tr>#99FFFF<tr><td>LT05</td><td bgcolor=>214</td></tr>我一生都无法弄清楚这一点。
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

这是因为您的bg函数将颜色代码回显到屏幕,而不是返回它以供其他 PHP 代码使用。return更改要使用的函数echo,它将按预期工作。


function bg($latency) {

    if ($latency == 0)       {return '#11FFFF';} 

    elseif ($latency < 30)   {return '#22FFFF';} 

    elseif ($latency < 60)   {return '#33FFFF';} 

    elseif ($latency < 90)   {return '#44FFFF';} 

    elseif ($latency < 120)  {return '#55FFFF';} 

    elseif ($latency < 150)  {return '#66FFFF';} 

    elseif ($latency < 180)  {return '#77FFFF';} 

    elseif ($latency < 210)  {return '#88FFFF';} 

    elseif ($latency < 240)  {return '#99FFFF';} 

    elseif ($latency < 270)  {return '#AAFFFF';} 

    elseif ($latency < 300)  {return '#BBFFFF';} 

    elseif ($latency >= 300) {return '#CCB27F';} 

}

echo当您想立即在屏幕上显示内容时使用。由于 PHP 解析器的工作方式,函数echo中的bg会在echo调用该函数的 之前运行,因为父级echo尚未完成。这就是return发挥作用的地方。它不是立即将内容打印到屏幕上,而是将其传递回任何调用的函数,以便以您希望的任何方式使用。


查看完整回答
反对 回复 2023-10-10
  • 1 回答
  • 0 关注
  • 42 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信