掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
PHP程序員們在掌握了PHP語言的基礎(chǔ)知識后,通常都會通過不斷的經(jīng)驗積累來鞏固自己所學到的知識。下面我們將為大家詳細介紹有關(guān)PHP final關(guān)鍵字的相關(guān)用法。#t#

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的大理州網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
在PHP中類的繼承是使用最多的一個編程特性,我們可以創(chuàng)建一個基類(父類)然后在這其中定義一些基本的方法,在我們的子類我們可以擴展父類中的方法這就叫覆蓋,但是如果說你在父類的某些很關(guān)鍵的方法你不能被子類繼承,因為如果子類繼承了這個方法可能給程序帶來一定的麻煩,所以我們希望這個方法是“私有”的,是不能被擴展的,這在PHP使用了final關(guān)鍵字來修飾你要不被繼承的方法。
PHP final關(guān)鍵字可以修飾類同樣可以修改類中的方法,但它們的作用是差不多的,即如果你使用了final關(guān)鍵字來修飾了,那么這個被修飾的類或者方法將不能被擴展或者繼承。你只能老老實實去引用它。如果你在類前面使用了final,這就是說明這個類不能使用繼承;如果你在方法前使用了PHP final關(guān)鍵字,這就是說明這個方法不能被覆蓋。道理就是這么簡單,讓我們也看個簡單的示例吧。
- < ?PHP
- final class BaseClass {
- public function test() {
- echo "BaseClass::test() called\n";
- }
- final public function moreTesting() {
- echo "BaseClass::moreTesting() called\n";
- }
- }
- class ChildClass extends BaseClass {
- public function moreTesting() {
- echo "ChildClass::moreTesting() called\n";
- }
- }
- // Results in Fatal error: Cannot override final method BaseClass::moreTesting()
- ?>
這個例子中,我們在類前和方法前都加了PHP final關(guān)鍵字來修飾我們具體的類,當然這個類是不能按要求來輸出的,你可以自己動手調(diào)試下,基本的原理就這樣了,我們只要記住如果類或者方法使用了final那么這就意味著類不能被繼承或者子類不能覆蓋父類的方法。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流