當前位置:才華齋>計算機>php語言>

PHP語言型別運算子

php語言 閱讀(1.75W)
PHP語言型別運算子
  運算子,用於執行程式程式碼運算,會針對一個以上運算元專案來進行運算。下面是關於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。