PHP 8 踩坑記

秦曉武發表於2021-01-15

嚐鮮是要付出代價的

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 協議》,轉載必須註明作者和本文連結