PHP的instanceof關鍵字
PHP5的另一個新成員是instdnceof關鍵字。使用這個關鍵字可以確定一個物件是類的例項、類的子類,還是實現了某個特定介面,並進行相應的操作。在某些情況下,我們希望確定某個類是否特定的型別,或者是否實現了特定的介面。instanceof操作符非常適合完成這個任務。instanceof操作符檢查三件事情:例項是否某個特定的型別,例項是否從某個特定的型別繼承,例項或者他的任何祖先類是否實現了特定的介面。例如,假設希望瞭解名為manager的物件是否為類Employee的例項:
1 |
$manager = new Employee(); |
2 |
… |
3 |
if ( $manager instanceof
Employee) |
4 |
echo "Yes" ; |
有兩點值得注意。首先,類名沒有任何定界符(引號)。使用定界符將導致語法錯誤。其次,如果比較失敗,指令碼將退出執行。instanceof關鍵字在同時處理多個物件時特別有用。例如,你可能要重複地呼叫某個函式,但希望根據物件型別調整函式的行為。可以使用case語句和instanceof關鍵字來實現這個目標。
01 |
class test2{} |
02 |
class test{} |
03 |
class testChilern
Extends test{} |
04 |
05 |
$a = new test2(); |
06 |
$m = new test(); |
07 |
08 |
$i =
( $m instanceof
test); |
09 |
if ( $i ) |
10 |
echo '$m是類test的例項!<br
/>' ; //
get this value |
11 |
|
12 |
switch ( $a instanceof
test){ |
13 |
case true
: |
14 |
echo 'YES<br
/>' ; |
15 |
break ; |
16 |
|
17 |
case false
: |
18 |
echo 'No<br
/>' ; //get
this value |
19 |
break ; |
20 |
} |
21 |
22 |
$d = new testChilern(); |
23 |
if ( $d instanceof
test) echo '$d是類test的子類!<br
/>' ; //
get this value |
轉:http://www.nowamagic.net/librarys/posts/php/28
相關文章
- java中的instanceof關鍵字Java
- Java 中 instanceof 關鍵字 object instanceof ClassJavaObject
- Java instanceof 關鍵字是如何實現的?Java
- PHP static 關鍵字和 self 關鍵字例項化的區別PHP
- PHP中static與yield關鍵字的思考PHP
- 多多關鍵字API php java PythonAPIPHPJavaPython
- out關鍵字和ref關鍵字的區別
- php5.5新增的yield關鍵字功能與相關使用技巧PHP
- javascript的this關鍵字JavaScript
- php生成器函式與yield關鍵字PHP函式
- PHP延遲靜態繫結:static關鍵字PHP
- this關鍵字
- 關鍵字
- abstract關鍵字 super 關鍵字 類與繼承繼承
- synchronized關鍵字的原理synchronized
- Java 的 static 關鍵字Java
- JAVA中的關鍵字Java
- Synchronized關鍵字的使用synchronized
- javascript中的with關鍵字JavaScript
- static關鍵字的作用
- Swift 關鍵字Swift
- typedef關鍵字
- Synchronized關鍵字synchronized
- JavaScript this關鍵字JavaScript
- Swift —— 關鍵字Swift
- oracle關鍵字Oracle
- Auto關鍵字
- super關鍵字
- synchronized 關鍵字synchronized
- static關鍵字
- [JavaScript] this 關鍵字JavaScript
- 4關鍵字
- php替換搜尋標題關鍵字為紅色PHP
- 判斷一個類是否為另一個類的例項 instanceof關鍵字和isAssignableFrom方法的區別
- 說說iOS中的常用的關鍵字static ,class(僅限Swift關鍵字)iOSSwift
- mysql 中的explain關鍵字MySqlAI
- c語言中的關鍵字C語言
- synchronized 關鍵字裡的鎖synchronized