【问题标题】:Way to verify if variable is a valid GD image resource?验证变量是否是有效的 GD 图像资源的方法?
【发布时间】:2011-08-22 20:34:26
【问题描述】:

我有一个接受 GD 图像资源作为其参数之一的类。据我所知,没有办法输入提示,因为它是资源而不是对象。有没有办法验证提供的参数是否是有效的 GD 图像资源(除了使用此资源失败的进一步功能)?

PS:请不要在回答中提及 ImageMagick...

【问题讨论】:

    标签: php gd type-hinting


    【解决方案1】:

    get_resource_type 函数应该可以帮助您。缺少编写代码并查看它返回的内容,我不确定它对 GD 资源会说什么,所以你自己在那里。不过应该是一个很好的起点!

    【讨论】:

    • 谢谢。这正是我所需要的。
    【解决方案2】:

    如果资源是 gd 图像,get_resource_type() 返回“gd”,这就是你需要的。

    【讨论】:

    • 谢谢!然而,史蒂夫是第一个。
    【解决方案3】:

    从 PHP 8.0 开始,get_resource_type 带有 GD 图像参数,将抛出 Fatal Error

    PHP 致命错误:未捕获的 TypeError: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");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 2012-02-28
      • 2014-03-05
      • 1970-01-01
      相关资源
      最近更新 更多