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

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