php创建类用什么关键字,PHP面向对象开发之类的常用关键字
php中類的常用關(guān)鍵字包括有:鎖(fianl)、有點(diǎn)類似與this關(guān)鍵字(self)、靜態(tài)屬性(static)、常量關(guān)鍵字(const)下面我來(lái)給大家整理整理。
類中的常用關(guān)鍵字
1.fianl:鎖
2.self:有點(diǎn)類似與this關(guān)鍵字
3.static:靜態(tài)屬性
4.const:常量關(guān)鍵字
1.關(guān)鍵字:fianl
用來(lái)定義類和方法的一個(gè)重要關(guān)鍵字,當(dāng)定義類的時(shí)候該類不能被繼承,用來(lái)定義方法的時(shí)候該方法不能被重載。
1. final不成修飾成員屬性(類中常不是用這個(gè)關(guān)鍵字)
2. final只能修飾類和方法
作用:
使用final修飾的類 不 能被子類繼承
使用final修飾的方法不能被子類去覆蓋
用來(lái)限制類不被繼承,方法不被覆蓋就使用fianl
類使用 final 關(guān)鍵字的例子:
finalclassPerson
{
......
}
final 定義的類被繼承時(shí)會(huì)提示如下錯(cuò)誤:
Fatal error: Class Student may not inherit from final class (Person) in ...
方法使用 final 關(guān)鍵字的例子:
classPerson
{
final?functionsay()
{
......
}
}
Example #1 Final 方法示例,代碼如下:
classBaseClass?{
publicfunctiontest()?{
echo"BaseClass::test()?calledn";
}
final?publicfunctionmoreTesting()?{
echo"BaseClass::moreTesting()?calledn";
}
}
classChildClassextendsBaseClass?{
publicfunctionmoreTesting()?{
echo"ChildClass::moreTesting()?calledn";
}
}
//?產(chǎn)生?Fatal?error:?Cannot?override?final?method?BaseClass::moreTesting()
?>
Example #2 Final 類示例,代碼如下:
final?classBaseClass?{
publicfunctiontest()?{
echo"BaseClass::test()?calledn";
}
//?這里無(wú)論你是否將方法聲明為final,都沒(méi)有關(guān)系
final?publicfunctionmoreTesting()?{
echo"BaseClass::moreTesting()?calledn";
}
}
classChildClassextendsBaseClass?{
}
//?產(chǎn)生?Fatal?error:?Class?ChildClass?may?not?inherit?from?final?class?(BaseClass)
?>
2.關(guān)鍵字:self
在訪問(wèn)PHP類中的成員變量或方法時(shí),如果被引用的變量或者方法被聲明成const(定義常量)或者static(聲明靜態(tài)),那么就必須使用操作符::,反之如果被引用的變量或者方法沒(méi)有被聲明成const或者static,那么就必須使用操作符->。
另外,如果從類的內(nèi)部訪問(wèn)const或者static變量或者方法,那么就必須使用自引用的self,反之如果從類的內(nèi)部訪問(wèn)不為const或者static變量或者方法,那么就必須使用自引用的$this
格式:self::類內(nèi)部成員(屬性或者方法)
|| 等價(jià)于
類名::類內(nèi)部成員(屬性或者方法)
注意:因?yàn)闆](méi)有數(shù)理化類訪問(wèn)內(nèi)部屬性或方法是沒(méi)有意義的,所以self一般用來(lái)訪問(wèn)類中的:靜態(tài)成員,常量,其他定義的內(nèi)容。
3.關(guān)鍵字:static
內(nèi)存優(yōu)化,用來(lái)定義靜態(tài)屬性或方法,可以在類未被實(shí)例化時(shí)就能使用。靜態(tài)屬性單獨(dú)占用內(nèi)存,而不會(huì)因創(chuàng)建多個(gè)對(duì)象而重復(fù)占用內(nèi)存。
格式:
classclass1?{
static$name;
staticfunctionfun1?{
...
}
}
靜態(tài)成員的訪問(wèn)(類內(nèi)部):
self::靜態(tài)成員
類名稱::靜態(tài)成員
靜態(tài)成員的訪問(wèn)(類外部):
類名稱::靜態(tài)成員
4.關(guān)鍵字:const
用來(lái)定義類中的常量,只能修飾類當(dāng)中的成員屬性。
格式:
classclass1?{//建議用大寫定義,不使用$符號(hào)。
constNAME;
...
}
看個(gè)PHP const小例子吧,代碼如下:
classsay_const{
constCHARSET="中國(guó)";
publice?functionsay_hello()
{
echoslef::CHARSET;
}
}
$const1=newsay_const()
$const1->say_hello();
?>
(責(zé)任編輯:admin)
總結(jié)
以上是生活随笔為你收集整理的php创建类用什么关键字,PHP面向对象开发之类的常用关键字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MATLAB在温室中的应用,基于MATL
- 下一篇: php连接redis 主从复制,redi