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 协议》,转载必须注明作者和本文链接
推荐文章: