PhpStorm 代码审查

August 30, 2016

PHP的自动类型转换(弱类型)使我们在开发过程中确实尝到了不少甜头,然后由于语言的松散性(个人杜撰用词,PHP是全宇宙最牛逼的语言),也使我们在开发过程中碰到不少让人追悔莫及的问题,这篇文字旨在帮助自己总结IDE是如何帮助自己避免一些潜在问题的

手抖问题

先看下面代码

if ($condition = 'ok') {
//do something
}

这里我们的本意是当$condition的值为ok时,进入判断逻辑内。但是由于我们手抖少写了一个等号,结果的变成了每次后悔执行do something操作
当然如果我们有良好的编码习惯,这类问题是可以直接避免的,我们可以做到在判断语句中,始终将常亮放到等式的左边,例如

if ('ok' = $condition) {
//do something
}

这样就是一个典型的赋值错误,我们即可立即发现并处理

php中的赋值操作的结果为等式右值,上述if内的判断则变成了’ok’,所以始终判断结果为ture

再看下面的代码

$name = $_REQUEST['name'];
if (empty($nam)) {
//do something
}

这个问题同样悲剧,由于变量$nam没有定义,所以会导致每次都对进入判断内部

同样还有如下代码

switch ($name) {
case '1' : echo 1;
case '2' : echo 2;
case '3' : echo 3;
}

显而易见,少了break,本来只会echo一次的代码,再name==’1’时echo 了3次

如何处理

通过PhpStorm的inspect code 可以帮助我们有效的避免此类潜在的bug。其实PhpStorm在我们使用的过程中本身就会实时的帮我们指出我们可能出现的问题,但是并不是所有的风险PhpStorm都会帮我们指出来。如果需要PhpStorm更加严格的inspect code,我们可以在PhpStorm中做简单的设置

整体框架

当然,我们也可以根据自身的需求,配置自己的审查方案,大家自行探索吧

Comments