亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

使用PHP靜態變量當緩存的方法

2020-03-22 19:32:22
字體:
來源:轉載
供稿:網友
下面這個PHP的代碼實例,功能是幫助用戶重置密碼,requestResetPassword是接收用戶重置密碼的請求并且做了相應的檢查。為了更好的復用性,我將重置密碼的操作單獨分配到一個新的resetPassword的函數,更改完密碼的后再調用sendEmail向用戶發送一封通知郵件。
復制代碼 代碼如下:
/**
* 用戶請求重置密碼的接收器
*/
function requestResetPassword() {
//檢查用戶是否存在
if( !checkUserExists( $_GET['userid'] ) ) {
exit('抱歉,用戶不存在,請確認用戶帳號。');
}
resetPassword( $_GET['userid'] );
//最后向用戶發送一封郵件
sendEmail( $_GET['userid'], '重置密碼成功', '新的密碼是xxxx' );
exit('新密碼已經發送到你的郵箱。');
}

/**
* 幫助用戶重置密碼
*/
function resetPassword( $userid ) {
//檢查用戶是否存在
if( !checkUserExists( $userid ) ) {
return false;
}

//進行重置用戶密碼的操作
//略...
return true;
}

/**
* 向用戶發送一封郵件
*/
function sendEmail( $userid, $title, $content ) {
//檢查用戶是否存在
if( !checkUserExists( $userid ) ) {
return false;
}

//發送郵件操作
//略...
return true;
}

/**
* 檢查某個用戶是否存在
*/
function checkUserExists( $userid ) {
$user = getUserInfo( $userid );
return !empty( $user );
}

/**
* 獲取某個用戶的數據
*/
function getUserInfo( $userid ) {
//假設我有一個query的函數,它用來查詢數據庫并返回數據
$user = query( "SELECT * FROM `user` WHERE `uid`=" . intval( $userid ) );
return is_array( $user ) ? $user : array() ;
}

現在問題是,這三個函數都同時使用checkUserExists這個函數來檢查用戶不存在,數據庫查詢了三次,這樣帶來了一些額外的開銷。
如果要去掉三者之間任意一個checkUserExists,看上去是可能的。但是如果之后有某些功能要調用resetPassword或者sendEmail,用戶不存在時,系統可能會發生錯誤。
還有一個解決方法是,將resetPassword的邏輯寫到requestResetPassword里,再過一點,把sendEmail的邏輯也寫進去。這樣函數調用減少,數據庫查詢也變成一次了,性能得到了提高。但是重置密碼和發送郵件的功能將不能得到復用,并且違背了單一責任的原則,代碼復雜度也提高了。
不過,因為函數分離和復用性都很好,如果實際性能受到影響,可能考慮用緩存的方法減少數據庫查詢,我改動了它們共用的checkUserExists函數:
復制代碼 代碼如下:
/**
* 檢查某個用戶是否存在
*/
function checkUserExists( $userid ) {
//增加一個緩存,用以記錄檢查用戶的結果
html' target='_blank'>static $cache = array();

//檢查當前用戶是否已經檢查過一次
if( isset( $cache[ $userid ] ) ) {
return $cache[ $userid ];
}

$user = getUserInfo( $userid );
//把結果記錄到緩存中
$cache[ $userid ] = !empty( $user );

return $cache[ $userid ];
}

也可以用同樣的方法改動getUserInfo函數。
這里可以看到,當代碼的復用性提高時,想提高性能是很簡單的,性能的瓶頸也很容易被發現和修改。
盡管這個例子對性能影響還不夠大,還有一些影響更大的,比如說遍歷,我可能為了復用而將遍歷封裝到一個函數中,并且多次使用它。這些開銷對我的項目根本沒有預想中那樣有太大的影響,或者說是微乎其微的。所以我更愿意把時間花在如何提高代碼的復用性和維護性方面,而不是糾結于浪費多這一點性能。實際性能如果真的達不到要求,也可以權衡增加硬件配置。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人狂野猛交老妇| 97国产在线视频| 啊v视频在线一区二区三区| 97久久久免费福利网址| 自拍偷拍亚洲精品| 国产suv精品一区二区| …久久精品99久久香蕉国产| 精品国产91久久久久久老师| 日韩中文在线中文网三级| 福利视频导航一区| 久久久久久久久久久久av| 美女精品视频一区| 日本午夜人人精品| 91色在线观看| 国内伊人久久久久久网站视频| 国产精品狼人色视频一区| 国产精品久久久久久亚洲影视| 成人午夜小视频| 色综合影院在线| 久久视频精品在线| 国产精品扒开腿做爽爽爽男男| 国产69精品99久久久久久宅男| 欧美日韩一区二区精品| 亚洲成成品网站| 精品日韩中文字幕| 粗暴蹂躏中文一区二区三区| 欧美日韩亚洲高清| 国内精品久久久久久久| 欧美乱大交xxxxx另类电影| 久久亚洲电影天堂| 一级做a爰片久久毛片美女图片| 欧美成人精品在线| 欧美精品在线免费观看| 久久精品国产v日韩v亚洲| 美日韩在线视频| 日本一区二区三区四区视频| 中文字幕亚洲欧美日韩在线不卡| 一区二区在线免费视频| 亚洲欧美国产制服动漫| 红桃视频成人在线观看| 九九久久久久久久久激情| 欧美午夜精品久久久久久久| 久久6免费高清热精品| 成人中文字幕+乱码+中文字幕| 国产精品综合网站| 91中文字幕一区| 国产精品一区二区久久| 欧美激情网站在线观看| 国产在线高清精品| 丁香五六月婷婷久久激情| 久久艹在线视频| 久久精品国产成人精品| www.欧美精品一二三区| 欧美日韩黄色大片| 欧美成人激情在线| 国产日韩欧美影视| 午夜精品国产精品大乳美女| 国产精品一区二区三区久久久| 亚洲福利视频二区| 亚洲综合中文字幕在线| 国产suv精品一区二区三区88区| 欧美日韩国产一区中文午夜| 2019av中文字幕| 亚洲国产女人aaa毛片在线| 国产伦精品一区二区三区精品视频| 日韩精品免费在线视频| 欧美第一页在线| 国产精品自产拍高潮在线观看| 亚洲激情视频在线观看| 欧美黑人狂野猛交老妇| 日韩av片电影专区| 亚洲成人教育av| 91精品久久久久久久久久另类| 国产精品日韩欧美| 日韩美女激情视频| 51ⅴ精品国产91久久久久久| 96精品视频在线| 中文字幕在线精品| 欧美劲爆第一页| 久热99视频在线观看| 国产精品中文字幕在线| 日韩av高清不卡| 5252色成人免费视频| 色樱桃影院亚洲精品影院| 久久亚洲精品小早川怜子66| 久青草国产97香蕉在线视频| 国产精品美女999| 国产女精品视频网站免费| 亚洲欧美日韩精品久久亚洲区| 亚洲视频欧洲视频| 欧美精品videos性欧美| 韩剧1988在线观看免费完整版| 欧美孕妇与黑人孕交| 国产一区二区av| 92裸体在线视频网站| 亚洲一区二区国产| 久久久av免费| 久久精品电影一区二区| 尤物99国产成人精品视频| 国产精品一二三在线| 97超级碰在线看视频免费在线看| 久久综合免费视频| 日韩中文第一页| 一夜七次郎国产精品亚洲| 亚洲国产婷婷香蕉久久久久久| 成人免费午夜电影| 91青草视频久久| 久久精品精品电影网| 中文字幕亚洲欧美日韩2019| 精品国产老师黑色丝袜高跟鞋| 国产精品久久久久久久久久久久久| 91视频九色网站| 欧美视频在线免费| 欧美精品一本久久男人的天堂| 日韩毛片中文字幕| 性欧美在线看片a免费观看| 久久久久在线观看| 高清一区二区三区四区五区| 久久久久久久国产精品视频| 亚洲欧美资源在线| 亚洲国产精品久久久久| 亚洲一区美女视频在线观看免费| 色99之美女主播在线视频| 欧美日韩高清区| 国产盗摄xxxx视频xxx69| 亚洲第一av网| 亚洲va欧美va国产综合剧情| 国产精品69久久| 欧美日韩国产二区| 中文字幕亚洲欧美在线| 欧美日韩中文在线| 欧美激情喷水视频| 国产精品普通话| 中文字幕在线观看亚洲| 亚洲aⅴ男人的天堂在线观看| 久久久久久久久久久国产| 欧美超级免费视 在线| 黑人极品videos精品欧美裸| 欧美裸身视频免费观看| 亚洲四色影视在线观看| 欧美国产乱视频| 国产日产欧美a一级在线| 国产视频自拍一区| 日韩av在线免费看| 欧美激情一区二区久久久| 欧美国产一区二区三区| 欧美性猛交xxxx乱大交| 国产成人精品午夜| 国产亚洲欧美视频| 日韩精品免费一线在线观看| 国产亚洲欧美一区| 欧美激情性做爰免费视频| 日韩**中文字幕毛片| 国产精品jizz在线观看麻豆| 俺去啦;欧美日韩| 国产精品免费一区二区三区都可以| 中文字幕亚洲一区| 深夜精品寂寞黄网站在线观看| 国产欧美精品一区二区| 久久五月天综合| 国内外成人免费激情在线视频网站| 91在线免费观看网站| 国产一区二区三区直播精品电影| 亚洲综合在线中文字幕|