php函數(shù)的常用方法及注意之處小結(jié)
更新時(shí)間:2011年07月10日 01:26:32 作者:
為了方便ide的管理及代碼提示功能,我們?cè)谒泻瘮?shù)命名時(shí)使用fun_開頭
復(fù)制代碼 代碼如下:
<?php
/**
* @author Yuans
* @copyright php.com
* @package 函數(shù)的常用使用方法及特性.
*/
# 基礎(chǔ)函數(shù)編寫注意點(diǎn).
// 為了方便ide的管理及代碼提示功能,我們?cè)谒泻瘮?shù)命名時(shí)使用fun_開頭.
function fun_cutstr($str,$str_width=0,$str_pad='...'){
// 每個(gè)函數(shù)都得考慮一些異常的情況, 比如函數(shù)引入不對(duì), 為0,為false等.
// 由于外部期望返回截取字符后的字符,所以就算此函數(shù)不工作,也應(yīng)該將它傳進(jìn)來的值給返回.
if(empty($str) === true || empty($str_width) === true)
return $str;
// 參數(shù)過濾
$str_width += 0;
// 保持一個(gè)原則, 盡量不要去污染原始參數(shù),
$return_str = mb_strcut($str,0,$str_width,'utf-8');
// 加強(qiáng)判斷, 如果return_str無法有值,由于是mb函數(shù),許多服務(wù)器會(huì)無法執(zhí)行.
if(empty($return_str) === false){
return $return_str.$str_pad;
}else{
return $str;
}
}
echo fun_cutstr('aaaaaaaaaaaaaaaaaaaaaaaa',5); // out disply: "aaaaa...";
# 由于是utf-8編碼, 所以每個(gè)漢字為4字節(jié), 此處將返回"我是...";
echo fun_cutstr('我是個(gè)技術(shù)工作者',8);
# 或者我們需要考慮對(duì)函數(shù)的嚴(yán)重破壞,比如如下函數(shù)
echo fun_cutstr(false); //out: false
echo fun_cutstr('tbbbbbbbbs','aaaaaaaa'); // out: tbbbbbbbbs
echo fun_cutstr('','aaaaaaaa'); //out: empty
?>
PHP函數(shù)的一些基礎(chǔ)知識(shí)
A: 跟變量命名一樣,不可以內(nèi)置函數(shù)名,不可以用數(shù)字來命名函數(shù).
B: 重復(fù)調(diào)用性.
C: 支持靜態(tài)元素.
D: 支持不固定參數(shù)
個(gè)人建議技術(shù)員對(duì)函數(shù)做如下規(guī)范:
A: 函數(shù)名建立分類前綴, 比如字符型的就str_xxx, 布爾型的就 bool_xxxx, 公共函數(shù)就 open_xxx 應(yīng)用型的函數(shù)就 APP_xxxx, 臨時(shí)型的就 temp_xxx
B: 函數(shù)的第一步請(qǐng)先判斷, 雖然有時(shí)自己知道一定會(huì)傳入某個(gè)類型的參數(shù),但作為標(biāo)準(zhǔn)化來說, 先判斷再處理是為了程序的健壯也是為了安全.
C: 不要污染原始變量, 如果你有項(xiàng)目經(jīng)驗(yàn),有debug應(yīng)用經(jīng)驗(yàn),你就會(huì)明白.
D: 引用函數(shù)盡量少用,占用內(nèi)存非常大,損耗嚴(yán)重.
E:不要用大寫來編寫代碼, 不要覺得很cool.
F: 過份產(chǎn)生函數(shù)是一種退步的方式, 你可以思考著是否具有重復(fù)性, 是否需要包裝性, 隨意將過程封成函數(shù)不是明智之舉.
G: 寫好你的函數(shù)注釋.
復(fù)制代碼 代碼如下:
<?php
$b = &fun_cutstr('aaaaaaaaaaaaaaaaaaaaaaaa',5); // out disply: "aaaaa...";
fun_cutstr('cccccccccccccccccc',5);
echo $b;
?>
引用函數(shù)將在php 5.3版本上無法正常運(yùn)行, 6.0也最終將其拋棄, 理論上講echo $b,將會(huì)返回ccccc...
$b引入了函數(shù)的地址, 為此函數(shù)的任何改變都會(huì)被賦值給$b.
當(dāng)然這些真的可以很少用, 不必太在意,特別是新學(xué)習(xí)者.
靜態(tài)函數(shù)如下表示:
復(fù)制代碼 代碼如下:
<?php
/**
* @author Yuans
* @copyright php.com
* @package 函數(shù)的常用使用方法及特性.
*/
# 靜態(tài)函數(shù)編寫注意點(diǎn).
function fun_static(){
static $a = 1;
echo $a ++;
}
fun_static();
fun_static();
fun_static();
?>
static $a = 1; 僅會(huì)在第一次調(diào)用函數(shù)時(shí)執(zhí)行, 表明它是個(gè)靜態(tài), 第二次執(zhí)行時(shí), $a變量就是取回靜態(tài)的值, 而不會(huì)去執(zhí)行$a = 1的賦值.如此類推, 數(shù)值不停地相加.<BR>
相關(guān)文章
php中通過數(shù)組進(jìn)行高效隨機(jī)抽取指定條記錄的算法
php使用數(shù)組array_rand()函數(shù)進(jìn)行高效隨機(jī)抽取指定條數(shù)的記錄,可以隨機(jī)抽取數(shù)據(jù)庫中的記錄,適合進(jìn)行隨機(jī)展示和抽獎(jiǎng)程序2013-09-09
PHP使用curl_multi實(shí)現(xiàn)并發(fā)請(qǐng)求的方法示例
這篇文章主要介紹了PHP使用curl_multi實(shí)現(xiàn)并發(fā)請(qǐng)求的方法,結(jié)合實(shí)例形式分析了php封裝curl_multi實(shí)現(xiàn)的并發(fā)請(qǐng)求相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
php實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法
這篇文章主要介紹了php實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法,涉及php操作字符串的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03

