復(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)
疑難解答