我想重写_()
PHP函数,以便它支持一个或多个参数。使用PHP代码可以做到这一点吗?是否可以重写默认的PHP函数?
3
A
回答
1
使用Runkit extension可以。
但是,它通常不被认为是一个好主意,除了用于单元测试之类的东西,你可能想要隔离你的一些功能。
对于一般用途,您不应该重写内置函数,因为它会让您的代码更难以维护,并且会使您难以调试一些问题。
此外,Runkit扩展名被标记为'实验',这意味着它不应该在生产系统中使用真的。
3
不,但使用PHP版本> = 5.3.0,您可以使用namespacing。
1
您可以尝试runkit extension,但在生产环境中它被认为是不好的做法。另请参见Redefining PHP function?
1
真的不这样做!即使你是这个项目的唯一开发者,并且知道你的项目不会成功,你永远不会知道你的代码将被使用多长时间(通常比你想象的要长得多)。如果另一位开发人员不得不深入到你的代码中,他将会非常困难,因为他/她不能依赖PHP本身。
更好的方法是编写你自己的方法/函数,然后调用你想覆盖的PHP函数。通过这种方式,开发人员可以立即看到,这不是标准的PHP函数,即使PHP将在未来的版本中允许其他参数,您也将拥有一个干净的解决方案。
相关问题
- 1. 是否可以重写默认的析构函数?
- 2. 是否可以更改PHP函数的默认参数?
- 3. 是否可以在F#中编写默认函数?
- 4. 是否可以重写内联函数?
- 5. 是否可以重写“调用”函数?
- 6. 是否可以重写ASP.NET MVC中[Authorize]的默认行为?
- 7. 是否可以“添加”到默认的拷贝构造函数?
- 8. 重写默认的构造函数
- 9. 一个活动的默认构造函数是否可以用monodroid重载?
- 10. 是否可以重写MyClass *(不是MyClass)的析构函数?
- 11. 在Javascript中重写默认函数?
- 12. 是否可以重写.InsertOnSubmit(实体)函数以添加功能
- 13. 是否可以重写window.document.location.host?
- 14. 是否可以重写drupal_build_css_cache?
- 15. 是否可以重写Haxe中的js.html.Window类的函数?
- 16. 是否可以重写vb.net资源管理器的GetString函数?
- 17. 是否可以重写wxHtmlWindow中的HTTP函数?
- 18. 是否可以重写全局函数的phpdoc返回类型?
- 19. 是否可以更改默认目标?
- 20. 是否有默认的默认构造函数?
- 21. 重写数默认页面
- 22. 是否可以重写启动完成构造函数?
- 23. 是否可以使用PHP来编写Amazon Lambda函数?
- 24. 模板参数的默认参数是否可以专用?
- 25. 派生类中的默认构造函数是否可选?
- 26. 在构造函数中,字段是否可以不是null(或其默认值)?
- 27. 默认使用PHP函数
- 28. 是否可以在打字稿中为接口函数提供默认参数?
- 29. 重写默认ResourceProvider
- 30. 重写默认值
不好的做法,危险 - 最后发布是2006年。 –
@WesleyvanOpdorp我说,在我的答案中,但它仍然是一个问题的答案。 – Fabio
对不起,应该在评论开始时添加'不仅'。 –