**一.资源迁移对象的原因** 1.PHP开发的长期努力之一就是摆脱resource类型。它们很难处理,甚至在PHP 8.0中也不提供键入支持. 2.PHP resource对象在垃圾回收器中也无法很好地发挥作用,这导致resource诸如之类的对象发生内存泄漏xml. 3.在PHP 8.0中,一些最常用的扩展更改已从传统resource对象转移到标准PHP类. **二.资源迁移对象兼容性** PHP 8.0resource到对象的迁移是无缝的,因为所有函数都返回并接受新对象,并且行为与先前resource对象的语义相同. **三.实例** 1.查看资源迁移情况 ~~~ $img='course.png'; $obj=imagecreatefrompng($img); var_dump($obj); ~~~ 2.无兼容性操作gd ~~~ header('content-type:image/png'); $img='course.png'; $obj=imagecreatefrompng($img); imagepng($obj); //imagepng($obj,'course_out.png'); ~~~ 3.检测环境是否支持jpeg ~~~ header('content-type:image/jpeg'); $img='yzmedu.jpg'; $obj=imagecreatefromjpeg($img); imagejpeg($obj); //imagejpeg($obj,'yzmedu_out.jpg'); ~~~