復(fù)制代碼 代碼如下:
 
<?php 
/** 
* @author Yuans 
* @copyright php.com 
* @package 函數(shù)的常用使用方法及特性. 
*/ 
# 基礎(chǔ)函數(shù)編寫注意點(diǎn). 
// 為了方便ide的管理及代碼提示功能,我們在所有函數(shù)命名時(shí)使用fun_開頭. 
function fun_cutstr($str,$str_width=0,$str_pad='...'){ 
// 每個(gè)函數(shù)都得考慮一些異常的情況, 比如函數(shù)引入不對, 為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); 
# 或者我們需要考慮對函數(shù)的嚴(yán)重破壞,比如如下函數(shù) 
echo fun_cutstr(false); //out: false 
echo fun_cutstr('tbbbbbbbbs','aaaaaaaa'); // out: tbbbbbbbbs 
echo fun_cutstr('','aaaaaaaa'); //out: empty 
?> 
復(fù)制代碼 代碼如下:
 
<?php 
$b = &fun_cutstr('aaaaaaaaaaaaaaaaaaaaaaaa',5); // out disply: "aaaaa..."; 
fun_cutstr('cccccccccccccccccc',5); 
echo $b; 
?> 
復(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> 
新聞熱點(diǎn)
疑難解答