0

背景披露:我从事 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

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

4

2 回答 2

2

使用类,您可以通过 typehint 更轻松地检查 args

public function doSomething(My\Super\Cl $cl, array $params){
...
}

有时您可以通过以下方式检查 argsfunc_num_args

我同意这是一种很好的做法,我的意思是,它被称为按合同设计

于 2013-05-14T20:30:44.600 回答
1

预先定义函数应该做什么并进行适当的异常处理是一种很好的做法。

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

我通常选择在应用程序中进行适当的检查,以便可以适当地通知用户。这也减轻了在库中进行操作的负担,并使其使用起来更加灵活。

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

我认为 github 上的大部分内容都将采用库方法,因此希望您在应用程序中做一些事情。

于 2013-05-14T20:30:58.470 回答