在 PHP 中,我有一个Error
类来处理我的应用程序中的所有错误。它的方法签名是:
class Error {
public static function show($code, $message) { ... }
}
其他类Database
,Memcached
,Settings
如果内部发生错误则调用Error::show()
。我有一个特例,我希望Error::show()
在执行正常逻辑之前更新MongoDB中的记录。但是,我不想在is_special_case
方法中添加新的函数参数Error::show()
,因为这需要将标志传递给调用Error
的每个类和函数
我想我可以设置一个全局global $is_special_case = true
然后在Error::show()
内检查是否设置了全局,但这只是错误的做法和糟糕的做法。有没有更好的方法来解决这个问题?
答案 0 :(得分:1)
您也可以使用始终设置为false的Default parameters
。在这种情况下,您可以处理该实例。
function doSomething($isSomethingWrong = false){...}
是的,您将不得不更改您的功能定义,但您不必每次都传递它,而且您也可以在需要时传递它。