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 协议》,转载必须注明作者和本文链接
秦晓武
讨论数量: 6

还有支付宝 app支付 github.com/alipay/alipay-easysdk/i...

3年前 评论
秦晓武 (楼主) 3年前
cvoid (作者) 3年前
秦晓武 (楼主) 3年前

我也是调了一天,发现了这个问题,要吐血身亡了

2年前 评论
秦晓武 (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!