dqh*_*cks 6 php gd type-hinting
我有一个类接受GD图像资源作为其参数之一.据我所知,没有办法输入提示,因为它是一个资源,而不是一个对象.有没有办法验证提供的参数是否是有效的GD图像资源(除了使用此资源失败的进一步功能)?
PS:请不要在你的回答中提到ImageMagick ......
ITC*_*ian 15
从 PHP 8.0 开始,get_resource_type使用GD图像参数,将抛出Fatal Error:
PHP 致命错误:未捕获类型错误:get_resource_type():参数 #1 ($resource) 必须是给定 GdImage 的资源类型。
我们应该使用get_class()函数。PHP 文档指出:
从 PHP 7.2.0 开始,不再允许显式传递 null 作为对象。该参数仍然是可选的,并且从类内部调用不带参数的 get_class() 也可以,但传递 null 现在会发出 E_WARNING 通知。
因此,在 PHP 8.0 中检查这一点的正确方法应该是:
function is_gd_image($var) : bool {
return (gettype($var) == "object" && get_class($var) == "GdImage");
}
Run Code Online (Sandbox Code Playgroud)