1. str_replace
str_replace是常用的php函數(shù),用于字符串替換,經(jīng)常看到某些php新人為了替換一批字符串,寫了好多行str_replace,實(shí)在是慘不忍睹。
比如這個(gè)例子:
PHP:
str = ’某人的棲息地 --- www.dwww.cn’;
str = str_replace(’某人’, ’壞人’, str);
str = str_replace(’的’, ’di’, str);
str = str_replace(’棲息地’, ’豬窩窩’, str);
str = str_replace(’www.dwww.cn’, ’dwww.cn’, str);
以上,替換了4次字符串,實(shí)際只要換個(gè)寫法,一行就搞定了:
str = ’某人的棲息地 --- www.dwww.cn’;
str = str_replace(array(’某人’, ’的’, ’棲息地’, ’www.dwww.cn’), array(’壞人’, ’di’, ’豬窩窩’, ’dwww.cn’), str);
2. array
經(jīng)常看到有人拿數(shù)組這樣寫:echo arr[some_key];
上面這行代碼能跑,看上去也沒什么大問題,但是如果你把php.ini的error notice打開的話,會(huì)收到一大批error。php解析器首先是拿“some_key”當(dāng)作一個(gè)常量來解釋的,但如果沒有定義some_key這樣一個(gè)常量,解析器還是很寬容的把它當(dāng)作了一個(gè)字符串來看待。因此新人同學(xué)們最好寫完整一點(diǎn):
echo arr[’some_key’];這樣就沒有問題了,如果你要把它放在雙引號(hào)中連用,也不能省掉引號(hào),可以這樣寫:echo "這是混在雙引號(hào)中的字符串{arr[’some_key’]}";
3. 類型戲法
類型戲法相當(dāng)好用,比如有一個(gè)表單提交過來的變量,正常情況下它應(yīng)該是整型的,有時(shí)候偷懶省去校驗(yàn)的寫法可以是這樣的:
intVar = (int)_POST[’post_var’];
再比如數(shù)組,有時(shí)候?qū)戞I值要打引號(hào)是不是很不爽啊,我們可以把它轉(zhuǎn)換成object,比如:
arr = array(’name’ => ’volcano’, ’sex’ => ’male’);
arr = (object)arr;
echo arr->name;
echo arr->sex; 是不是很省事?
4. lambda函數(shù)
lamda函數(shù)和array_*系列函數(shù)使用有奇效,拿php手冊(cè)上的一個(gè)例子來說:
PHP:
<?php
av = array("the ", "a ", "that ", "this ");
array_walk(av, create_function(’&v,k’, ’v = v . "mango";’));
print_r(av);
?>
至少省了一個(gè)for循環(huán)
5. 嵌套循環(huán)顯示表格的單元格
嵌套循環(huán)顯示表格的單元格,這是一個(gè)很老的話題哦,往往會(huì)要在某個(gè)單元格后邊加個(gè)條件判斷什么的,考慮是不是要輸出tr抑或是td標(biāo)簽。
俺這里介紹一個(gè)辦法,利用array_chunk函數(shù)能夠比較工整的輸出html,見下例,這個(gè)例子要輸出一個(gè)4行6列的表格:
<?php
arr = range(1, 24); //這個(gè)會(huì)生成一個(gè)數(shù)組array(1,2,3,4....24)
arr = array_chunk(arr, 6);
// output table
?>
<table>
<?php foreach(arr as row): ?>
<tr>
<?php foreach(row as col):?>
<td><?php echo col?></td>
<?php endforeach;?>
</tr>
<?php endforeach;?>
</table>
新聞熱點(diǎn)
疑難解答