詳細講解php 類別、方法關鍵字教程
以下是我要幫大家整理的php 類別、方法關鍵字教學,有興趣的同學可以去看看。
1、final
如果我們不希望一個類別被繼承,我們使用final來修飾這個類別。這個類別將無法被繼承。
final---用於類別、方法前。
final類別---不可被繼承。
final方法---不可被覆寫。
2、public 表示全域,類別內部外部子類別都可以存取;private表示私有的,只有本類別內部可以使用;protected表示受保護的,只有本類或子類別或父類別中可以存取;
3、this是指向目前物件的指標(可以看成C裡面的指標),self是指向目前類別的指針,parent是指向父類別的指針
self:當變量,方法設定為static時,在本類別中呼叫用self
4、static
宣告類別成員或方法為static ,就可以不實例化類別而直接訪問,不能透過一個物件來存取其中的靜態成員(靜態方法除外)。靜態成員屬於類,不屬於任何物件實例,但類別的物件實例都能共用。
然後我們再看一下使用$object->… 和使用class::… 都有什麼差別:
1. 使用$object->… ,需要執行建構子#建立物件;
2. 使用class::… 呼叫靜態方法/變量,不需要執行建構子建立物件;
3. 使用class::… 呼叫非靜態方法/變量,也不需要執行建構函式建立物件。
5、abstract 抽象
一、抽象類別abstract class
1 .抽象類別是指在 class 前面加了 abstract 關鍵字且有抽象方法(在類別方法 function 關鍵字前面加了 abstract 關鍵字)的類別。
2 .抽象類別不能被直接實例化。抽象類別中只定義(或部分實作)子類別所需的方法。子類別可以透過繼承抽象類別並透過實作抽象類別中的所有抽象方法,使抽象類別具體化。
3 .如果子類別需要實例化,前提是它實作了抽象類別中的所有抽象方法。如果子類別沒有全部實作抽象類別中的所有抽象方法,那麼該子類別也是抽象類別,必須在 class 前面加上 abstract 關鍵字,並且不能被實例化。
6、interface 介面
1 .抽象類別提供了具體實現的標準,而介面則是純粹的模版。介面只定義功能,而不包含實作的內容。介面用關鍵字 interface 來聲明。
2 . interface 是完全抽象的,只能宣告方法,而且只能宣告 public 的方法,不能宣告 private 及 protected 的方法,不能定義方法體,也不能宣告實例變數 。然而, interface 卻可以宣告常數變數 。但將常數變數放在 interface 中違背了其作為介面的作用而存在的宗旨,也混淆了 interface 與類別的不同價值。如果的確需要,可以放在對應的 abstract class 或 Class 中。
7、instanceof
PHP5的另一個新成員是instdnceof關鍵字。使用這個關鍵字可以確定一個物件是類別的實例、類別的子類,還是實作了某個特定接口,並進行對應的操作。在某些情況下,我們希望確定某個類別是否特定的類型,或者是否實作了特定的介面。 instanceof操作符非常適合完成這個任務。 instanceof操作符檢查三件事:實例是否某個特定的類型,實例是否從某個特定的類型繼承,實例或他的任何祖先類別是否實作了特定的介面。例如,假設希望了解名為manager的物件是否為類別Employee的實例:
$manager = new Employee(); if ($manager instanceof Employee) echo "Yes"; 有两点值得注意。首先,类名没有任何定界符(引号)。使用定界符将导致 语法错误 。其次,如果比较失败,脚本将退出执行。instanceof关键字在同时处理多个对象时特别有用。例如,你可能要重复地调用某个函数,但希望根据对象类型调整函数的行为。可以使用case语句和instanceof关键字来实现这个目标。 class test{} class test{} class testChilern Extends test{} $a = new test(); $m = new test(); $i = ($m instanceof test); if($i) echo '$m是类test的实例!<br />'; // get this value switch ($a instanceof test){ case true : echo 'YES<br />'; break; case false : echo 'No<br />'; //get this value break; } $d=new testChilern(); if($d instanceof test)echo '$d是类test的子类!<br />'; // get this value
php中instanceof有什麼作用
作用:(1)判斷物件是否是某個類別的實例,(2)判斷一個物件是否實作了某個介面。
第一種用法:
<?php $obj = new A(); if ($obj instanceof A) { echo 'A'; }
第二種用法:
<?php interface ExampleInterface { public function interfaceMethod(); } class ExampleClass implements ExampleInterface { public function interfaceMethod() { return 'Hello World!'; } } $exampleInstance = new ExampleClass(); if($exampleInstance instanceof ExampleInterface){ echo 'Yes, it is'; }else{ echo 'No, it is not'; } ?>
輸出結果:Yes, it is
另外,要注意instanceof 與is_subclass_of () 的差別,請看程式碼:
<?php class Foo { public $foobar = 'Foo'; public function test() { echo $this->foobar . "\n"; } } class Bar extends Foo { public $foobar = 'Bar'; } $a = new Foo(); $b = new Bar(); echo "use of test() method\n"; $a->test(); $b->test(); echo "instanceof Foo\n"; var_dump($a instanceof Foo); // TRUE var_dump($b instanceof Foo); // TRUE echo "instanceof Bar\n"; var_dump($a instanceof Bar); // FALSE var_dump($b instanceof Bar); // TRUE echo "subclass of Foo\n"; var_dump(is_subclass_of($a, 'Foo')); // FALSE var_dump(is_subclass_of($b, 'Foo')); // TRUE echo "subclass of Bar\n"; var_dump(is_subclass_of($a, 'Bar')); // FALSE var_dump(is_subclass_of($b, 'Bar')); // FALSE ?> 输出结果(PHP 5.4.4): use of test() method Foo Bar instanceof Foo bool(true) bool(true) instanceof Bar bool(false) bool(true) subclass of Foo bool(false) bool(true) subclass of Bar bool(false)
上面是我整理給大家的講解php 類別、方法關鍵字教學,希望今後會對大家有幫助。
相關文章:
PHP命名空間namespace 及匯入use 的詳細用法指南
以上是詳細講解php 類別、方法關鍵字教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。
