背景披露: 我一直在研究PHP项目已有一段时间了,但最近才开始认真研究最佳实践,oop设计模式,新的php版本功能等等。
我的很多代码最终都是这样的:
public function($arg1 = 'default', $arg2 = false)
{
if(!empty($arg2) && $arg1 != 'default) {
// do something here
}
}
我在github中看到的几乎所有正确的OOP代码都没有检查所使用的参数的存在或正确类型。
我的问题是:对于总是对参数进行冗余检查或仅在特殊情况下可能发生错误(tm)时,它是否被认为是一种好习惯。
例如,在运行SQL查询并获取结果后,我总是这样做
if(!empty($results)) //go do stuff
我应该这样做吗?我是偏执狂吗?
答案 0 :(得分:2)
使用类可以通过typehint
更轻松地检查argspublic function doSomething(My\Super\Cl $cl, array $params){
...
}
有时你可以通过func_num_args
我同意这是一种很好的做法,我的意思是,它被称为Design by contract
答案 1 :(得分:1)
最好先定义函数应该执行的操作并进行适当的异常处理。
示例 - 如果我正在编写一个使用我的库的应用程序,那么应用程序应该进行一些检查或库应该。
我通常选择在应用程序中进行适当的检查,以便我可以正确地通知用户。这也消除了在库中执行它的负担,并使其更灵活地使用。
但是如果你选择这样做,你应该确保以类似的方式编写所有的库和应用程序(因此“标准”),否则会变得混乱。
我认为github上的大多数内容都是在库方法中,因此希望你在应用程序中做一些事情。