在工作中经常看到新手程序员在代码方面做得不够优化,以php为例说以下几点,让程序更简洁,更快。
1、注意=、==、===的正确运用,避免在程序中出现逻辑错误
有时候你可能会把“==”写成了“=”,这样就造成了程序在逻辑方面出错,找了半天才发现原因是将“==”写成了=。在判断一个表达式的值是否为false的时候尽量用“===”,当结果为0、null等值的时候使用“==”表达式的值也为真。
“=”是赋值运算符,“==”是判断两个值是否相等。
“==”和“===”的区别在于“==”只判断两个值是否相等,并不去判断他们的类型是否相同,而“===”只有在值和类型都相同的情况下表达式的值才会为真。
2、使用三元运算符“:”代替if...else...
经常看到有人这么写:
if ($a) {
$b = 1;
} else {
$b = 2;
}
使用三元运算符可以将代码简化为一行:
$b = $a ? 1 : 2;
3、如果只对一个条件进行判断,它的值比较多,是枚举类型的,使用swtich...case代替if...elseif...elseif...else可以使代码更清晰
例如:if ($a == 10) {
$status = '待审核';
...
} elseif ($a == 20) {
$status = '审核通过';
...
} elseif ($a == 30) {
$status = '审核未通过';
...
} elseif ($a == 40) {
$status = '工作中';
...
} elseif ($a == 50) {
$status = '已结束';
...
}
将以上判断写成switch...case更具有可读性:
switch ($a) {
case 10:
$status = '待审核';
...
break;
case 20:
$status = '审核通过';
...
break;
case 30:
$status = '审核未通过';
...
break;l
case 40:
$status = '工作中';
...
break;
case 50:
$status = '已结束';
...
break;
}
4、在项目中看到有些程序员将能够执行一次SQL插入完成的写成了执行多次SQL。
例如有人会这么写:for ($i = 0; $i < $n; $i++) {
$sql = 'insert into table values(...)';
$db->query($sql);
}
将多次执行SQL优化成执行一次,可以提高效率:
$sql = 'insert into table values ';
for ($i = 0; $i < $n; $i++) {
$sql .= '(...),'
}
$sql = rtrim($sql, ',');
$db->query($sql);
5、使用比较大的数组或对象的时候,用完之后要及时销毁,避免占用太多的资源。
比较大的数组或对象会消耗很多资源,在使用完之后要使用unset()及时销毁,减少资源的占用。6、在使用require等函数加载文件的时候尽量写绝对路径,可以减少解析路径的时间。
7、字符串尽量使用''代替""。
如果字符串中要解析变量时才用"",否则使用''效率更高。8、尽量将for循环的终止条件在外面计算好,避免每次循环都有重新计算。
例如:$arr = array(...);
for ($i = 0; $i < count($arr); $i++) {
...
}
将以上代码优化成以下可以提高效率:
$arr = array(...);
$count = count($arr);
for ($i = 0; $i < $count; $i++) {
...
}