PHP語言類型運算符
- php語言
- 關注:1.58W次
運算符,用於執行程序代碼運算,會針對一個以上操作數項目來進行運算。下面是關於PHP中類型運算符的介紹, 希望對大家有所幫助,更多消息請關注應屆畢業生網。 instanceof 用於確定一個 PHP 變量是否屬於某一類 class 的實例: Example #1 instanceof 使用示例 <?php class MyClass { } class NotMyClass { } $a = new MyClass; var_dump($a instanceof MyClass); var_dump($a instanceof NotMyClass); ?> 以上例程會輸出: bool(true) bool(false) instanceof 也可用來確定一個變量是不是繼承自某一父類的'子類的實例: can also be used to determine whether a variable is an instantiated object of a class that inherits from a parent class: Example #2 instanceof 與繼承類示例 <?php class ParentClass { } class MyClass extends ParentClass { } $a = new MyClass; var_dump($a instanceof MyClass); var_dump($a instanceof ParentClass); ?> 以上例程會輸出: bool(true) bool(true) 檢查一個對象 不是 某個類的實例,可以使用 邏輯運算符 not。 Example #3 使用instanceof檢查對象 不是 某一類的實例 <?php class MyClass { } $a = new MyClass; var_dump(!($a instanceof stdClass)); ?> 以上例程會輸出: bool(true) 最後,instanceof也可用於確定一個變量是不是實現了某個接口的對象的實例: Example #4 Using instanceof for class <?php interface MyInterface { } class MyClass implements MyInterface { } $a = new MyClass; var_dump($a instanceof MyClass); var_dump($a instanceof MyInterface); ?> 以上例程會輸出: bool(true) bool(true) 雖然 instanceof 通常直接與類名一起使用,但也可以使用對象或字符串變量: Example #5 Using instanceof with other variables <?php interface MyInterface { } class MyClass implements MyInterface { } $a = new MyClass; $b = new MyClass; $c = 'MyClass'; $d = 'NotMyClass'; var_dump($a instanceof $b); // $b is an object of class MyClass var_dump($a instanceof $c); // $c is a string 'MyClass' var_dump($a instanceof $d); // $d is a string 'NotMyClass' ?> 以上例程會輸出: bool(true) bool(true) bool(false) 然而 instanceof 的使用還有一些陷阱必須瞭解。在 PHP 5.1.0之前,如果要檢查的類名稱不存在,instanceof 會調用 __autoload()。另外,如果該類沒有被裝載則會產生一個致命錯誤。可以通過使用動態類引用(dynamic class reference)或用一個包含類名的字符串變量來避開這種問題: Example #6 避免 PHP 5.0 中 instanceof 引起的類名查找和致命錯誤問題 <?php $d = 'NotMyClass'; var_dump($a instanceof $d); // no fatal error here ?> 以上例程會輸出: bool(false) instanceof 運算符是 PHP 5 引進的。在此之前用 is_a(),但是 is_a() 已經過時了,最好用instanceof。
- 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-hk/jsj/php/905lg1.html