1. 使用list來(lái)實(shí)現(xiàn)一次獲取explode后的特定段值: list( , $mid) = explode(';', $string); 2. 使用NULL === 來(lái)代替is_null: is_null和 NULL === 完全是一樣的效果, 但是卻節(jié)省了一次函數(shù)調(diào)用 " /> 日本xxwwxxww在线视频免费,7777sq国产精品,欧美一级精品

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]

最后更新: 2011/04/02

1. 使用list來(lái)實(shí)現(xiàn)一次獲取explode后的特定段值:
list( , $mid) = explode(';', $string);
2. 使用NULL === 來(lái)代替is_null:
is_null和 NULL === 完全是一樣的效果, 但是卻節(jié)省了一次函數(shù)調(diào)用.

3. 使用===盡量不用==:
php有倆組相等比較運(yùn)算符===/!==和==/!=, ==/!=會(huì)有隱式類型轉(zhuǎn)換,而===/!==會(huì)嚴(yán)格比較倆個(gè)操作時(shí)是否類型相同并且值相等.
我們應(yīng)該盡量使用===而不是==, 除了因?yàn)檗D(zhuǎn)換規(guī)則比較難記以外, 還有一點(diǎn)就是如果使用===, 對(duì)于日后的維護(hù)或者閱讀你代碼的人也會(huì)很舒服:”在這個(gè)時(shí)刻, 這一行語(yǔ)句, 這個(gè)變量就是這個(gè)類型的!”.

4. 少用/不用 continue:
continue是回到循環(huán)的頭部, 而循環(huán)結(jié)束本來(lái)就是回到循環(huán)的頭部, 所以通過(guò)適當(dāng)?shù)臉?gòu)造, 我們完全可以避免使用這條語(yǔ)句, 使得效率得到改善.

5. 警惕switch/in_array等的松比較(loose comparision):
switch和in_array都是采用松比較, 所以在要比較的變量之間類型不一樣的時(shí)候, 很容易出錯(cuò):

復(fù)制代碼 代碼如下:
switch ($name) {
case "laruence":
...
break;
case "eve":
...
break;
}

對(duì)于上面的switch, 如果$name是數(shù)字0, 那么它會(huì)滿足任何一條case. 同理在in_array中也是.
解決的辦法就是, 在switch之前, 把變量類型轉(zhuǎn)換成你所期望的類型.
復(fù)制代碼 代碼如下:
switch (strval($name)) {
case "laruence":
...
break;
case "eve":
...
break;
}


而, in_array提供了第三個(gè)可選的參數(shù), 通過(guò)這個(gè)參數(shù)可以改變默認(rèn)的比較方式.
6. switch不僅僅只用來(lái)判別變量:
比如, 對(duì)于如下的一段代碼:
復(fù)制代碼 代碼如下:
if($a) {
} else if ($b) {
} else if ($c || $d) {
}

可以簡(jiǎn)單的改寫為:
復(fù)制代碼 代碼如下:
switch (TRUE) {
case $a:
break;
case $b:
break;
case $c:
case $d:
break;
}

是不是看起來(lái)更清晰呢?
7. 變量先定義后使用:
使用一個(gè)未定義的變量, 比使用一個(gè)定義好的變量要慢8倍以上!
可以相像, php引擎會(huì)首先按照正常的邏輯來(lái)獲取這個(gè)變量, 然而這個(gè)變量不存在, 所以php引擎需要拋出一個(gè)NOTICE, 并且進(jìn)入一段使用未定義變量時(shí)應(yīng)該走的邏輯, 然后返回一個(gè)新的變量.
另外, 閱讀代碼的角度講, 當(dāng)你使用一個(gè)未定義的變量時(shí), 會(huì)讓閱讀你代碼的人困惑:”這個(gè)變量在那里初始化的, 和之前的代碼有關(guān)系么? 和include進(jìn)來(lái)的文件有關(guān)系么?”
最后, 從規(guī)范編程的角度來(lái)講, 你也需要這樣做.
8. 不用第三變量交換倆個(gè)變量的值:
list($a, $b) = array($b, $a),
但其實(shí)還是有匿名臨時(shí)變量的產(chǎn)生, 對(duì)于整數(shù)來(lái)說(shuō), 采用互逆的運(yùn)算來(lái)做, 還是比較靠譜:
復(fù)制代碼 代碼如下:
$a = $a + $b;
$b = $a - $b;
$a = $a - $b;

不過(guò), 還是用異或比較好, 因?yàn)? 主站蜘蛛池模板: 亚洲国产精品一区二区三区 | 黄网在线免费 | 欧美另类xxx精品人妖 | 日本在线观看www免费 | 一二三四视频社区在线播放中国 | 久久香蕉综合精品国产 | 亚洲综合网国产福利精品一区 | 91视频啪| 四虎免费在线观看视频 | 女人ass人体下部pic | 激情五月五月婷婷 | 成人第一页 | 在线观看激情 | 成人午夜免费视频毛片 | 久久精品国产精品亚洲婷婷 | 精品伊人久久久香线蕉 | 国产成人亚洲综合 | 国产精品午夜在线观看 | 国产精品久久久久久一区二区三区 | 亚洲一二三四 | 国产91精品久久久久久久 | 99成人免费视频 | 久996视频精品免费观看 | 黄色片在线观看网站 | 九九久久久久午夜精选 | 欧美天天影院 | 2019亚洲日韩新视频 | 高清视频一区 | 国产精品欧美亚洲 | 成人午夜视频一区二区国语 | 婷婷五月在线视频 | 女人国产香蕉久久精品 | 一区二区三区在线免费 | 久久天天丁香婷婷中文字幕 | 韩国女主播一区二区视频 | 精品自拍一区 | 午夜精品视频在线 | 色老板亚洲| 国产欧美久久久精品影院 | 日本免费一区二区三区视频 | 国产精品伦理久久久久久 |