色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

php函數(shù)的常用方法及注意之處小結(jié)

復(fù)制代碼 代碼如下:
<?php
/**
* @author Yuans
* @copyright php.com
* @package 函數(shù)的常用使用方法及特性.
*/
# 基礎(chǔ)函數(shù)編寫(xiě)注意點(diǎn).
// 為了方便ide的管理及代碼提示功能,我們?cè)谒泻瘮?shù)命名時(shí)使用fun_開(kāi)頭.
function fun_cutstr($str,$str_width=0,$str_pad='...'){
// 每個(gè)函數(shù)都得考慮一些異常的情況, 比如函數(shù)引入不對(duì), 為0,為false等.
// 由于外部期望返回截取字符后的字符,所以就算此函數(shù)不工作,也應(yīng)該將它傳進(jìn)來(lái)的值給返回.
if(empty($str) === true || empty($str_width) === true)
return $str;
// 參數(shù)過(guò)濾
$str_width += 0;
// 保持一個(gè)原則, 盡量不要去污染原始參數(shù),
$return_str = mb_strcut($str,0,$str_width,'utf-8');
// 加強(qiáng)判斷, 如果return_str無(wú)法有值,由于是mb函數(shù),許多服務(wù)器會(huì)無(wú)法執(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: 跟變量命名一樣,不可以?xún)?nèi)置函數(shù)名,不可以用數(shù)字來(lái)命名函數(shù).
B: 重復(fù)調(diào)用性.
C: 支持靜態(tài)元素.
D: 支持不固定參數(shù)
個(gè)人建議技術(shù)員對(duì)函數(shù)做如下規(guī)范:
A: 函數(shù)名建立分類(lèi)前綴, 比如字符型的就str_xxx, 布爾型的就 bool_xxxx, 公共函數(shù)就 open_xxx 應(yīng)用型的函數(shù)就 APP_xxxx, 臨時(shí)型的就 temp_xxx
B: 函數(shù)的第一步請(qǐng)先判斷, 雖然有時(shí)自己知道一定會(huì)傳入某個(gè)類(lèi)型的參數(shù),但作為標(biāo)準(zhǔn)化來(lái)說(shuō), 先判斷再處理是為了程序的健壯也是為了安全.
C: 不要污染原始變量, 如果你有項(xiàng)目經(jīng)驗(yàn),有debug應(yīng)用經(jīng)驗(yàn),你就會(huì)明白.
D: 引用函數(shù)盡量少用,占用內(nèi)存非常大,損耗嚴(yán)重.
E:不要用大寫(xiě)來(lái)編寫(xiě)代碼, 不要覺(jué)得很cool.
F: 過(guò)份產(chǎn)生函數(shù)是一種退步的方式, 你可以思考著是否具有重復(fù)性, 是否需要包裝性, 隨意將過(guò)程封成函數(shù)不是明智之舉.
G: 寫(xiě)好你的函數(shù)注釋.
復(fù)制代碼 代碼如下:
<?php
$b = &fun_cutstr('aaaaaaaaaaaaaaaaaaaaaaaa',5); // out disply: "aaaaa...";
fun_cutstr('cccccccccccccccccc',5);
echo $b;
?>

引用函數(shù)將在php 5.3版本上無(wú)法正常運(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ù)編寫(xiě)注意點(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的賦值.如此類(lèi)推, 數(shù)值不停地相加.<BR>

php技術(shù)php函數(shù)的常用方法及注意之處小結(jié),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 虹口区| 崇文区| 赣州市| 荥阳市| 闵行区| 商洛市| 大港区| 黄骅市| 和田县| 台湾省| 商南县| 洛隆县| 东平县| 夏河县| 无为县| 包头市| 南岸区| 卢龙县| 高密市| 宁陵县| 囊谦县| 河东区| 西城区| 左云县| 新余市| 吉安县| 金湖县| 万安县| 保德县| 乌审旗| 达孜县| 阳原县| 金昌市| 佛冈县| 武安市| 九寨沟县| 金寨县| 页游| 盘锦市| 武功县| 宝坻区|