是否可以覆盖默认的PHP函数?

时间:2011-08-23 10:43:35

标签: php function override

我想覆盖_() PHP函数,以便它支持一个或多个参数。是否可以使用PHP代码执行此操作?

4 个答案:

答案 0 :(得分:3)

不,但是使用PHP版本> = 5.3.0,您可以使用namespacing

答案 1 :(得分:1)

你可以试试runkit extension,但在生产环境中它被认为是一种不好的做法。另请参阅Redefining PHP function?

答案 2 :(得分:1)

可以使用Runkit extension

然而,它通常不被认为是一个好主意,除了用于单元测试之类的东西,你可能想要隔离你的一些功能。

对于一般用途,您不应该重写内置函数,因为它会使您的代码难以维护,并且会让您面临一些非常难以调试的问题。

此外,Runkit扩展程序标记为“experimental”,这意味着确实不应在生产系统中使用。

答案 3 :(得分:1)

真的不要这样做!即使您是该项目的唯一开发人员并且知道您的项目不会成功,也无法知道您的代码将被使用多长时间(通常比您想象的要长得多)。如果其他开发人员不得不深入研究您的代码,他将会非常困难,因为他/她不能依赖PHP本身。

更好的方法是编写自己的方法/函数,然后调用要覆盖的PHP函数。这样开发人员就可以立即看到,这不是标准的PHP函数,即使PHP在将来的版本中允许其他参数,你也会有一个干净的解决方案。