上个月,我以一种特殊的方式开始编写函数,这使我作为程序员的生活变得不止一次。无论您输入多少注释或冗长的参数名称,最终都可能导致编写代码而使您迷路。原因很简单。可以说您有一个带有两个参数的函数。
function myFunction($intNum1, $intNum2){ // 函数做某事 }
通常的做法是在继续其余功能之前,检查参数以确保它们与您期望的一样。假设我们只希望数字在一定范围内。如果它们不在该范围内,则函数应返回false。许多程序员可能开始写这样的东西。
function myFunction($intNum1,$intNum2){ if($intNum1 > 0 && $intNum1 < 1000){ if($intNum2 > 0 && $intNum2 < 1000){ // 用数字做些事。 return $value; }else{ return false; } }else{ return false; } }
该代码仍将产生所需的检查效果,以查看数字是否在一个范围内,但是有一种更简单,更优雅的方法。例如,如果要添加第三个参数或第四个参数,该怎么办?嵌套if语句已经足够困难了,但是当您进入四个级别时,事情会变得有些愚蠢。
这是相同的代码,但是以允许更好的可读性和维护性的方式进行了重构。请注意,if语句逻辑已反转。
function myFunction($intNum1,$intNum2){ // 检查参数1 if($intNum1 < 0 && $intNum1 > 1000){ return false; } // 检查参数2 if($intNum2 < 0 && $intNum2 > 1000){ return false; } // 用数字做些事。 return $value; }
这样,我们就可以通过所有逻辑检查,然后再进行我们希望函数执行的操作,并且可读性强。同样,如果您想添加另一个参数,则只需添加另一个if语句来检查该参数。如果没有杂乱的嵌套语句或复杂的语法。
上面的函数也没有考虑到参数可能不是数字这一事实,可以在函数顶部添加其他检查来解决这个问题。
我之所以将其发布在一般类别中,是因为自从我开始使用PHP以来,我已经至少以3种不同的语言使用了此技术。这里编写的所有代码都是使用通用的PHP(如语法),但是这个想法是正确的。希望您也能从中得到一些帮助。