【问题标题】:Is it possible to supress a function redeclaration error in PHP? [duplicate]是否可以抑制 PHP 中的函数重新声明错误? [复制]
【发布时间】:2012-02-04 22:28:17
【问题描述】:

我想知道是否可以像重新声明函数时那样抑制 PHP 中的错误,这样执行就不会中断,脚本只会使用第一次声明的函数?

提前致谢!

【问题讨论】:

  • 仅仅因为你的问题被关闭并不意味着你应该带着你的意图再次问它“蒙面”。
  • 是的,重复,但至少它给了我一个答案|-(

标签: php function redeclare


【解决方案1】:

我想知道是否可以抑制 PHP 中的错误...

PHP 有许多抑制错误的选项,例如php.ini 中的error_reporting() 函数和display_errors 选项。

...所以执行不会中断,脚本只会使用第一次声明的函数?

重新声明函数是 PHP 中的一个致命错误,您通常无法正常地从中恢复。

可以预处理源代码,删除重复的函数声明。

【讨论】:

  • 他能做到if( !is_callable( 'foo')){function foo(){}}
  • @Vyktor 是的,但这并没有抑制任何错误。不过它可能适用于 OP。
  • 是的,我知道,但这可能会让他轻松解决问题。 OP 是什么意思?
  • @Vyktor 原始海报。我也将他之前的问题用于上下文......他想重新定义 ionCube 编码的函数并让它们的重新定义静默失败。
  • 顺便说一句:有php.net/manual/en/book.runkit.php这个小东西
【解决方案2】:

抑制错误可能不是最好的主意,但您可以在代码中使用某些逻辑来规避它们。

检查一个函数之前是否已经声明过:

if(!function_exists("my_function"))
{
   function my_function() 
   {
     // ... do stuff
   }
}

参考:http://php.net/manual/en/function.function-exists.php

【讨论】:

    【解决方案3】:

    抑制错误消息通常是个坏主意。
    改为修复错误被认为是一种好的做法。 提示:并不看起来那么难。

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 2011-09-12
      • 1970-01-01
      • 2015-08-24
      • 2016-05-07
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 2011-07-17
      相关资源
      最近更新 更多