重新定义内置的PHP函数

Abs*_*Abs 20 php

我想重新定义PHP中已经构建的某些函数,例如echo()或time() - 我不需要全局定义这些函数,只需在单个脚本中进行测试.

我认为这可以在Perl中完成,但在PHP中 - 这可能吗?

Joh*_*set 17

runkit_function_redefine - 用新实现替换函数定义

注意:默认情况下,只能删除,重命名或修改用户空间功能.要覆盖内部函数,必须在php.ini中启用runkit.internal_override设置.

  • 编辑php.ini文件将影响在特定PHP安装上运行的所有PHP脚本.但是,函数redifinition本身是调用`runkit_function_redefine()`的脚本所独有的. (4认同)

Gor*_*don 6

您可能还想看看

override_function() - 覆盖内置函数

来自Advanced PHP调试器包.

必须重新定义本机PHP函数或语言语句应该响起警钟.在我看来,这不应该是您的生产代码的一部分,除非您正在编写调试器或类似工具.

另一种选择是使用http://antecedent.github.io/patchwork

拼布是一个PHP库,能够在运行时重新定义用户定义的函数和方法,松散的复制功能runkit_function_redefine在纯PHP 5.3的代码,其中,除其他事项外,让你可以使用测试双打代替静态和私有方法.

但后者不适用于本机功能