-
\在這里是轉(zhuǎn)義符,是為了區(qū)分開正則匹配符號(hào)和正常的符號(hào)的情況。\-告訴計(jì)算機(jī)代表內(nèi)容中包含-,而不是代表范圍的”-“符號(hào)。[\w\-]+表示多次匹配方括號(hào)中定義的字符類整體(字母、數(shù)字、下劃線(\w),還有-(\-))。
查看全部 -
'/\w:(\w{6}+\s{1}+\w{4})/'
\w:?????? 意思是? 任意個(gè)字母 向后匹配到 : (冒號(hào))位置,??? 這里 匹配? name:
\w{6}??? 意思是 再向后匹配6個(gè)字符,大括號(hào)里代表匹配多少個(gè)?? 這里匹配? steven
\s{1}????? 意思是 1個(gè)空格???? 這里匹配? 空格
\w{4}???? 意思是 再向后匹配4個(gè)字符? 這里匹配 jobs
查看全部 -
[\d]表示 匹配數(shù)字, {3,4}表示匹配3次或四次 ,
查看全部 -
$p = '/\d+\-\d+/';
正斜線是分隔符;
第一組 \d+是匹配電話的前幾位數(shù)字,\d匹配數(shù)字,+表示1次或多次匹配;
\-匹配-,因?yàn)?是有特殊意義的元字符,所以需要轉(zhuǎn)義;
第二組 \d+是匹配電話的后幾位數(shù)字,\d匹配數(shù)字,+表示1次或多次匹配。
查看全部 -
PHP類和對(duì)象之訪問控制
如果構(gòu)造函數(shù)定義成了私有方法,則不允許直接實(shí)例化對(duì)象了,這時(shí)候一般通過靜態(tài)方法進(jìn)行實(shí)例化,在設(shè)計(jì)模式中會(huì)經(jīng)常使用這樣的方法來控制對(duì)象的創(chuàng)建,比如單例模式只允許有一個(gè)全局唯一的對(duì)象。
查看全部 -
PHP類和對(duì)象之Static靜態(tài)關(guān)鍵字
靜態(tài)屬性與方法可以在不實(shí)例化類的情況下調(diào)用,直接使用
類名::方法名
的方式進(jìn)行調(diào)用。靜態(tài)屬性不允許對(duì)象使用->操作符調(diào)用靜態(tài)屬性需要加$符號(hào)
靜態(tài)方法中,$this偽變量不允許使用??梢允褂胹elf,parent,static在內(nèi)部調(diào)用靜態(tài)方法與屬性。
查看全部 -
PHP類和對(duì)象之構(gòu)造函數(shù)和析構(gòu)函數(shù)
PHP5可以在類中使用__construct()定義一個(gè)構(gòu)造函數(shù),具有構(gòu)造函數(shù)的類,會(huì)在每次對(duì)象創(chuàng)建的時(shí)候調(diào)用該函數(shù),因此常用來在對(duì)象創(chuàng)建的時(shí)候進(jìn)行一些初始化工作。
在子類中如果定義了__construct則不會(huì)調(diào)用父類的__construct,如果需要同時(shí)調(diào)用父類的構(gòu)造函數(shù),需要使用parent::__construct()顯式的調(diào)用。
同樣,PHP5支持析構(gòu)函數(shù),使用__destruct()進(jìn)行定義,析構(gòu)函數(shù)指的是當(dāng)某個(gè)對(duì)象的所有引用被刪除,或者對(duì)象被顯式的銷毀時(shí)會(huì)執(zhí)行的函數(shù)。
查看全部 -
PHP類和對(duì)象之定義類的方法
使用關(guān)鍵字static修飾的,稱之為靜態(tài)方法,靜態(tài)方法不需要實(shí)例化對(duì)象,可以通過類名直接調(diào)用,操作符為雙冒號(hào)::。
查看全部 -
PHP類和對(duì)象之類的屬性
默認(rèn)都為public,外部可以訪問。一般通過->對(duì)象操作符來訪問對(duì)象的屬性或者方法,對(duì)于靜態(tài)屬性則使用::雙冒號(hào)進(jìn)行訪問。當(dāng)在類成員方法內(nèi)部調(diào)用的時(shí)候,可以使用$this偽變量調(diào)用當(dāng)前對(duì)象的屬性。
受保護(hù)的屬性與私有屬性不允許外部調(diào)用,在類的成員方法內(nèi)部是可以調(diào)用的。
查看全部 -
首先要理解函數(shù)的重載,就是同一個(gè)函數(shù)名,傳遞不同參數(shù),來實(shí)現(xiàn)不同的方法內(nèi)容。
但php里是不能直接實(shí)現(xiàn)的,要通過__call方法。
所謂的函數(shù)不存在,是指函數(shù)沒有在類中定義,但你可以在__call方法中定義這個(gè)函數(shù)的內(nèi)容,這個(gè)函數(shù)的名字就是$name承載的值,而$args就是這個(gè)函數(shù)傳遞的參數(shù)。
123456789101112131415161718192021222324252627282930 <?php
class
?Magic?{
??
//__call方法,實(shí)例調(diào)用Magic類中未被定義的方法時(shí)執(zhí)行
??
function
?__call(
$name
,
$arguments
)?{
????
//判斷實(shí)例調(diào)用的是否是foo方法??
????
if
(
$name
==
'foo'
)?{
????????
//如果是整形,則執(zhí)行私有方法foo_for_int?
????????
if
(
is_int
(
$arguments
[0])){
????????????
$this
->foo_for_int(
$arguments
[0]);
????????
}
????????
//如果是字符串,則調(diào)用私有方法foo_for_string
????????
if
(
is_string
(
$arguments
[0])){
???????????
$this
->foo_for_string(
$arguments
[0]);??
????????
}??
????
}??
??
}???
??
//兩個(gè)私有方法,實(shí)例不能直接調(diào)用
??
private
?function
?foo_for_int(
$x
)?{??
????
print
(
"參數(shù)是一個(gè)整數(shù)!"
);??
??
}???
??
private
?function
?foo_for_string(
$x
)?{??
????
print
(
"參數(shù)是一個(gè)字符串!"
);??
??
}??
}?
//生成一個(gè)實(shí)例$x
$x
?=?
new
?Magic();
//參數(shù)不同,執(zhí)行的方法也不同??
$x
->foo(3);??
$x
->foo(
"3"
);??
?>
上面是一個(gè)__call方法使用的舉例,實(shí)例$x調(diào)用foo方法,類中沒有,執(zhí)行__call方法,__call方法則根據(jù)foo的參數(shù)不同,調(diào)用了類中的兩個(gè)私有方法,從而實(shí)現(xiàn)了函數(shù)的重載
查看全部 -
子類覆蓋父類的方法是要通過在子類中重新編寫新的方法,如果不更改的話,則默認(rèn)子類繼承父類的方法。例如
class parentClass { public function test(){ echo "parent"; }}
1--> class childClass extends parent{ } 如果子類繼承父類但并沒有重寫其中的test方法,那么則繼承父類的test方法
即 $child = new childClass(); $child->test();//輸出parent
2--> classchildClass extends parent{ public function test(){ echo "child"; }} 如果子類重寫了方法,那么再實(shí)例化childClass類調(diào)用test方法會(huì)調(diào)用子類重寫后的test方法。也就是說,如果兒子有能力(指重寫了方法),那么就能夠繼承父親的財(cái)產(chǎn)(父類的方法)并且把它發(fā)揚(yáng)光大(重寫);如果兒子沒能力(沒有重寫方法),那么久只能夠啃老(調(diào)用父類的方法)。這樣希望能幫你理解吧。
查看全部 -
類的屬性必須定義為公有 受保護(hù) 私有之一
類中的方法不設(shè)置關(guān)鍵詞 默認(rèn)為公有
查看全部 -
子類中含有的protected方法或private方法,在該子類的所有父類中無法調(diào)用,protected方法可以被該類和該類的所有子類調(diào)用,private方法只能被該類調(diào)用。
查看全部 -
如果構(gòu)造函數(shù)定義成了私有方法,則不允許直接實(shí)例化對(duì)象了,這時(shí)候一般通過靜態(tài)方法進(jìn)行實(shí)例化,在設(shè)計(jì)模式中會(huì)經(jīng)常使用這樣的方法來控制對(duì)象的創(chuàng)建,比如單例模式只允許有一個(gè)全局唯一的對(duì)象。
查看全部 -
問控制通過關(guān)鍵字public,protected和private來實(shí)現(xiàn)。被定義為公有的類成員可以在任何地方被訪問。被定義為受保護(hù)的類成員則可以被其自身以及其子類和父類訪問。被定義為私有的類成員則只能被其定義所在的類訪問。
查看全部
舉報(bào)