之前的代码是实现:把大写命名转换成下划线分割命名的函数,用到了如下代码:
for($i=0;$i<strlen($str);$i++){ // do something... }
在PHP7.x没问题,PHP8报错为:strlen(): Argument #1 ($string) must be of type string, array given
在网上都是说PHP8下和PHP7下的报错不同,并没有给出解决方法,
其实只是因为变量类型不正确,变量强制转为string字符串类型即可,如,之前的是:strlen($str)改为:strlen((string)$str)即可!!
ThinkPHP6.0.12版本的验证码扩展库,在PHP8下也报类似错误,其改为:(int)类型即可,第223行,暴力解决就是屏蔽警告^ ^
上一篇: 《建站管家》二次开发文档