將我的服務(wù)器升級(jí)到 PHP 7.3 后,我開始看到以下警告:PHP 已棄用:stripos():將來非字符串指針將被解釋為字符串。使用顯式 chr() 調(diào)用來保留當(dāng)前行為...參考以下代碼: if (stripos($checkforcomma, "," !== 0))為什么它將逗號(hào)視為字符串字符以外的東西?按照錯(cuò)誤消息中的建議,chr(44) 將輸出一個(gè)逗號(hào),事實(shí)上,當(dāng)我將 "," 換成 chr(44) 時(shí),會(huì)生成完全相同的錯(cuò)誤消息。
1 回答

Helenr
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
正如 Jeto 對(duì)您的問題所評(píng)論的那樣,解決此問題的方法是將錯(cuò)字更正為
if (stripos($checkforcomma, ",") !== 0)
我認(rèn)為值得指出的是,修復(fù)此錯(cuò)字以停止棄用通知將改變您的程序的工作方式。使用當(dāng)前代碼,即使沒有警告,它也沒有做它打算做的事情。
您正在有效地檢查chr(1)
字符串而不是逗號(hào),因?yàn)?code>"," != 0計(jì)算結(jié)果為true
,它將被轉(zhuǎn)換為 int 1 以在 stripos 中使用。
除非您有時(shí)在某些字符串chr(1)
中間有 a ,否則應(yīng)該在其中發(fā)生的任何事情都不會(huì)發(fā)生,因此在您修復(fù)錯(cuò)字之后,您的程序?qū)⒏锌赡軋?zhí)行以前可能從未運(yùn)行過的代碼。假設(shè)在此之前一切看起來都正常工作,那可能會(huì)導(dǎo)致其他問題。$checkforcomma
if
您可能已經(jīng)意識(shí)到這種可能性,但我認(rèn)為為將來可能遇到類似問題的人添加一點(diǎn)警告可能會(huì)有所幫助。
- 1 回答
- 0 關(guān)注
- 94 瀏覽
添加回答
舉報(bào)
0/150
提交
取消