开发者

Way to verify if variable is a valid GD image resource?

I have a class that accepts a GD image resource as one of its arguments. As far as I know, there is no way to type hint this since it is a resource and not an object. Is there a way to validate whether the supplied argument is a valid GD image resource (aside from further functionality using this resource failing)?

PS: Please do not mention ImageMagick i开发者_高级运维n your answer...


The get_resource_type function should help you out. Short of writing code and seeing what it return, I'm not sure what it's going to say for a GD resource, so you're on your own there. Should be a good starting point, though!


get_resource_type() returns "gd" if the resource is a gd image, so that's what you need.


Starting with PHP 8.0, get_resource_type with a GD image argument, will throw a Fatal Error:

PHP Fatal error: Uncaught TypeError: get_resource_type(): Argument #1 ($resource) must be of type resource, GdImage given.

We should use get_class() function. PHP documentation states:

Explicitly passing null as the object is no longer allowed as of PHP 7.2.0. The parameter is still optional and calling get_class() without a parameter from inside a class will work, but passing null now emits an E_WARNING notice.

So, the correct way to check this, in PHP 8.0 should be:

function is_gd_image($var) : bool {
    return (gettype($var) == "object" && get_class($var) == "GdImage");
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜