PHP 8 踩坑记
尝鲜是要付出代价的
curl_init
这个函数返回类型从resource
变成了object
,使用阿里云OSS的 SDK 时,代码里有个if (is_resource($curl_handle))
检测,导致调用一直失败。改成if ($curl_handle !== false)
问题解决。
另外,curl_close
也失效了,需要加上unset
做兼容处理
curl_close($handle);
+ unset($handle);
追述源头:www.php.net/releases/8.0/zh.php
类型系统与错误处理的改进
- 算术/位运算符更严格的类型检测 RFC
- Abstract trait 方法的验证 RFC
- 确保魔术方法签名正确 RFC
- PHP 引擎 warning 警告的重新分类 RFC
- 不兼容的方法签名导致 Fatal 错误 RFC
- 操作符 @ 不再抑制 fatal 错误.
- 私有方法继承 RFC
- Mixed 类型 RFC
- Static 返回类型 RFC
- 内部函数的类型 Email thread
- 扩展 Curl, Gd, Sockets, OpenSSL, XMLWriter, and XML 以 Opaque 对象替换 resource
本作品采用《CC 协议》,转载必须注明作者和本文链接
还有支付宝 app支付 github.com/alipay/alipay-easysdk/i...
我也是调了一天,发现了这个问题,要吐血身亡了