0

我有一个非常基本的问题,即我正在做的事情是一种好的做法,还是矫枉过正。

class myClass
{
    public function doSomething($thing=false)
    {
        if (!$thing) echo "Your thing is missing!";
        echo "Did you get that $thing I sentcha?";
    }
}

如果每个功能都有这些预防措施,或者只有那些可能被误用的功能(不过,我认为找到这些功能是主观的)。

将函数参数设置为 false 是否是一种好习惯(假设它们通常应该携带非虚假值)?这也可以防止其他开发人员误用这些函数,主要是在他们忘记输入值的情况下。

或者......如果我假设使用此功能的开发人员将正确使用它并且不会遗漏,这是否是一种浪费/过度杀伤$thing

4

1 回答 1

4

不要那样做,具有预设参数值的函数基本上是不传递参数的邀请。特别是如果您使用具有自动完成功能的 IDE...

如果调用方法时缺少参数,PHP 会报错,您应该主动检查参数是否有效,如果不是,则抛出异常。

作为一般规则,请尝试扩展您的验证,以便验证实际格式(数字、字符串、百分比、货币......),而不是仅仅检查“某物”是否存在;)

于 2013-11-06T01:28:12.670 回答