六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學習啦——學設計>網(wǎng)頁設計>網(wǎng)站建設>網(wǎng)站后臺技術>

PHP設計常見的模式_PHP設計模式有哪些

時間: 宇民40 分享

  實際上,設計模式對于每個人都非常有用。如果這些工具不是 “架構太空人” 的專利,那么它們又是什么?下面由學習啦小編為大家整理的PHP設計模式,希望大家喜歡!

  PHP設計模式

  一、首先來看,單例模式

  所謂單例模式,即在應用程序中只會有這個類的一個實例存在。

  通常單例模式用在僅允許數(shù)據(jù)庫訪問對象的實例中,從而防止打開多個數(shù)據(jù)庫連接。

  一個單例類應包括以下幾點:

  和普通類不同,單例類不能被直接實例化,只能是由自身實例化。因此,要獲得這樣的限制效果,構造函數(shù)必須標記為private。

  要讓單例類不被直接實例化而能起到作用,就必須為其提供這樣的一個實例。因此,就必須要讓單例類擁有一個能保存類的實例的私有靜態(tài)成員變量和對應的一個能訪問到實例的公共靜態(tài)方法。

  在PHP中,為防止對單例類對象的克隆來打破單例類的上述實現(xiàn)形式,通常還為基提供一個空的私有__clone()方法。

  單例模式確保某個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例。

  單例模式是一種常見的設計模式,在計算機系統(tǒng)中,線程池、緩存、日志對象、對話框、打印機、數(shù)據(jù)庫操作、顯卡的驅動程序常被設計成單例。

  單例模式分3種:懶漢式單例、餓漢式單例、登記式單例。

  二、單例模式有以下3個特點:

  1.只能有一個實例。

  2.必須自行創(chuàng)建這個實例。

  3.必須給其他對象提供這一實例。

  那么為什么要使用PHP單例模式?

  PHP一個主要應用場合就是應用程序與數(shù)據(jù)庫打交道的場景,在一個應用中會存在大量的數(shù)據(jù)庫操作,針對數(shù)據(jù)庫句柄連接數(shù)據(jù)庫的行為,使用單例模式可以避免大量的new操作。因為每一次new操作都會消耗系統(tǒng)和內(nèi)存的資源。

  php數(shù)組指針操作

  一、移動數(shù)組指針的操作:

  Next() 向下 同時會獲得當前元素的值。

  Prev() 向上同時會獲得當前元素的值。

  End() 移動到最后一個元素單元 獲得最后一個元素的值

  Reset() 移動到第一個單元 獲得第一個元素的值。

  如果移動不成功,返回false。

  參數(shù)都為需要操作的數(shù)組,并且是引用傳遞。

  二、獲得指針指向的元素的信息:

  Key();//獲得當前數(shù)組指針指向的元素下標Current();//獲得當前數(shù)組指針指向的元素

  只獲取數(shù)據(jù) 不移動指針

  三、還有一個混合的操作:

  即可以獲得當前指針元素的信息(鍵值) 也 可以同時移動指針。

  Each(); 獲得當前元素的信息(鍵和值的信息),

  四、移動指針:

  我們有時可以利用each的特性,來達到遍歷數(shù)組的目的:

  應該利用循環(huán)結構 配合each完成。

  配合條件:each到最后一個元素時,就會返回false。

  List 函數(shù):

  List的限制:只針對索引數(shù)組起作用。

  利用list 和each 完成遍歷

  但是使用完each遍歷后 數(shù)組指針是不會reset的重置的,需要手動重置。

  最常用的PHP正則表達式

  一、校驗數(shù)字的表達式

  數(shù)字:^[0-9]*$

  n位的數(shù)字:^\d{n}$

  至少n位的數(shù)字:^\d{n,}$

  m-n位的數(shù)字:^\d{m,n}$

  零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$

  非零開頭的最多帶兩位小數(shù)的數(shù)字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

  帶1-2位小數(shù)的正數(shù)或負數(shù):^(\-)?\d+(\.\d{1,2})?$

  正數(shù)、負數(shù)、和小數(shù):^(\-|\+)?\d+(\.\d+)?$

  有兩位小數(shù)的正實數(shù):^[0-9]+(.[0-9]{2})?$

  有1~3位小數(shù)的正實數(shù):^[0-9]+(.[0-9]{1,3})?$

  非零的正整數(shù):^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$

  非零的負整數(shù):^\-[1-9][]0-9″*$ 或 ^-[1-9]\d*$

  非負整數(shù):^\d+$ 或 ^[1-9]\d*|0$

  非正整數(shù):^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

  非負浮點數(shù):^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

  非正浮點數(shù):^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

  正浮點數(shù):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

  負浮點數(shù):^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

  浮點數(shù):^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

  二、校驗字符的表達式

  漢字:^[\u4e00-\u9fa5]{0,}$

  英文和數(shù)字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

  長度為3-20的所有字符:^.{3,20}$

  由26個英文字母組成的字符串:^[A-Za-z]+$

  由26個大寫英文字母組成的字符串:^[A-Z]+$

  由26個小寫英文字母組成的字符串:^[a-z]+$

  由數(shù)字和26個英文字母組成的字符串:^[A-Za-z0-9]+$

  由數(shù)字、26個英文字母或者下劃線組成的字符串:^\w+$ 或 ^\w{3,20}$

  中文、英文、數(shù)字包括下劃線:^[\u4E00-\u9FA5A-Za-z0-9_]+$

  中文、英文、數(shù)字但不包括下劃線等符號:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

  可以輸入含有^%&',;=?$\”等字符:[^%&',;=?$\x22]+

  禁止輸入含有~的字符:[^~\x22]+

  三、特殊需求表達式

  Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

  域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

  InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

  手機號碼:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

  電話號碼(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^($$\d{3,4}-)|\d{3.4}-)?\d{7,8}$

  國內(nèi)電話號碼(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}

  身份證號(15位、18位數(shù)字):^\d{15}|\d{18}$

  短身份證號碼(數(shù)字、字母x結尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$

  帳號是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

  密碼(以字母開頭,長度在6~18之間,只能包含字母、數(shù)字和下劃線):^[a-zA-Z]\w{5,17}$

  強密碼(必須包含大小寫字母和數(shù)字的組合,不能使用特殊字符,長度在8-10之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

  日期格式:^\d{4}-\d{1,2}-\d{1,2}

  一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$

  一個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$

PHP設計常見的模式_PHP設計模式有哪些

實際上,設計模式對于每個人都非常有用。如果這些工具不是 架構太空人 的專利,那么它們又是什么?下面由學習啦小編為大家整理的PHP設計模式,希望大家喜歡! PHP設計模式 一、首先來看,單例模式 所謂單例模式,即在應用程序中只會有這個類的一個實例存在。
推薦度:
點擊下載文檔文檔為doc格式

精選文章

27245