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

stripos():传递字符串字符时的非字符串针警告

stripos():传递字符串字符时的非字符串针警告

PHP
蓝山帝景 2022-06-17 10:16:06
将我的服务器升级到 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 ,否则应该在其中发生的任何事情都不会发生,因此在您修复错字之后,您的程序将更有可能执行以前可能从未运行过的代码。假设在此之前一切看起来都正常工作,那可能会导致其他问题。$checkforcommaif

您可能已经意识到这种可能性,但我认为为将来可能遇到类似问题的人添加一点警告可能会有所帮助。


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号