我有一个非常基本的问题,关于我正在做的事情是不是一个好的做法,或者是过度的。
class myClass
{
public function doSomething($thing=false)
{
if (!$thing) echo "Your thing is missing!";
echo "Did you get that $thing I sentcha?";
}
}
每个功能是否应该采取这些预防措施,或者只考虑那些可能被误用的功能(尽管我认为这些功能是主观的)。
将函数参数设置为false是一个好习惯(假设它们通常应该带有非伪值)?这也可以防止其他开发人员误用这些函数,主要是因为他们忘记输入值。
或者......如果我假设使用此功能的开发人员会正确使用它并且不遗漏$thing
,这是否是浪费/过度杀伤?
答案 0 :(得分:4)
不要这样做,具有预设参数值的函数基本上是不传递参数的邀请。特别是如果您使用的是具有自动完成功能的IDE ...
如果使用缺少的参数调用该方法,PHP将会抱怨,并且您应该主动检查参数是否有效,如果不是这样,则抛出异常。
作为一般规则,尝试扩展验证,以便验证实际格式(数字,字符串,百分比,货币......),而不仅仅检查是否存在“某事”;)