【问题标题】:PHP : How to ensure script does not fail if method does not exist?PHP:如果方法不存在,如何确保脚本不会失败?
【发布时间】:2010-06-19 13:32:47
【问题描述】:

我有一个 PHP 脚本,它从我编写的类中调用方法。但是由于系统的性质,在某些情况下调用的方法不存在,例如

$snippets = new Snippets();

echo $snippets->fakeMethod();

在上述示例中,fakeMethod() 不存在,脚本因致命错误而失败并完全停止。

我需要一个解决方案,其中 either 该方法只是静默失败,或者首先使用 method_exists() 针对类中的所有方法检查该方法,但是我不能在脚本中放置 if 语句,例如

if(method_exists(fakemethod, snippets)){ 

echo $snippets->fakeMethod();

}

相反,“工作”需要以某种方式在课堂上完成。有解决办法吗?

【问题讨论】:

    标签: php class methods


    【解决方案1】:

    你可以定义一个“魔法”method __call

    【讨论】:

    • 这看起来很棒。快速思考一下,是否有 PHP 4 等价物?
    • 不,没有。顺便说一句:你到底为什么要使用 PHP4?
    • 我不是很幸运 - 但​​是我正在开发的系统可能会在某个时候部署在 PHP4 服务器上 - 希望不会......
    • 如果你的托管公司还有 php4 那就别管了
    【解决方案2】:

    见:__call()

    【讨论】:

      猜你喜欢
      • 2022-12-13
      • 2018-01-29
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多