新手程序员应该注意的几点

原文链接: https://my.oschina.net/BpBhDzhTIE7Q/blog/129472

在工作中经常看到新手程序员在代码方面做得不够优化,以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++) {
    ...
}

转载于:https://my.oschina.net/BpBhDzhTIE7Q/blog/129472

你可能感兴趣的:(新手程序员应该注意的几点)