这不仅是副作用,而且实际上是动态修改程序逻辑的非常有用的功能。它来自过程式PHP时代,但如果您想以最直接的方式为某些独立功能提供替代实现,那么它也可以与OO体系结构一起使用。(虽然在大多数情况下,OO是更好的选择,但这是一个选择,而不是一项强制性要求,并且一些简单的任务不需要额外的精力。)
例如,如果您从框架中动态/有条件地加载插件,并希望使插件作者的工作变得非常轻松,则可以为插件未覆盖的一些关键功能提供默认实现:
function provide_defaults()
{
// Make sure a critical function exists:
if (!function_exists("tedious_plugin_callback"))
{
function tedious_plugin_callback()
{
// Complex code no plugin author ever bothers to customize... ;)
}
}
}