我应该总是在PHP中检查args是否有函数?

时间:2013-05-14 20:24:00

标签: php

背景披露: 我一直在研究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

我应该这样做吗?我是偏执狂吗?

2 个答案:

答案 0 :(得分:2)

使用类可以通过typehint

更轻松地检查args
public function doSomething(My\Super\Cl $cl, array $params){
...
}

有时你可以通过func_num_args

检查args

我同意这是一种很好的做法,我的意思是,它被称为Design by contract

答案 1 :(得分:1)

最好先定义函数应该执行的操作并进行适当的异常处理。

示例 - 如果我正在编写一个使用我的库的应用程序,那么应用程序应该进行一些检查或库应该。

我通常选择在应用程序中进行适当的检查,以便我可以正确地通知用户。这也消除了在库中执行它的负担,并使其更灵活地使用。

但是如果你选择这样做,你应该确保以类似的方式编写所有的库和应用程序(因此“标准”),否则会变得混乱。

我认为github上的大多数内容都是在库方法中,因此希望你在应用程序中做一些事情。