亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 PHP 會為我的表代碼生成亂碼 HTML?

為什么 PHP 會為我的表代碼生成亂碼 HTML?

至尊寶的傳說 2023-10-16 10:33:44
我創建了一個熱圖函數,我將使用它來使用 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 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

這是因為您的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-16
  • 1 回答
  • 0 關注
  • 103 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號