您好,登錄后才能下訂單哦!
這篇文章主要介紹php中instanceof和判斷閉包Closure的操作案例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
instanceof 用于確定一個 PHP 變量是否屬于某一類 class 的實例,在此之前用 is_a(),但是后來 is_a() 被廢棄
<?php class MyClass { } class NotMyClass { } $a = new MyClass; var_dump($a instanceof MyClass); var_dump($a instanceof NotMyClass); ?>
以上例程會輸出:
bool(true)
bool(false)
instanceof 也可用來確定一個變量是不是繼承自某一父類的子類的實例:
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)
用于代表 匿名函數 的類.
匿名函數(在 PHP 5.3 中被引入)會產生這個類型的對象。在過去,這個類被認為是一個實現細節,但現在可以依賴它做一些事情。自 PHP 5.4 起,這個類帶有一些方法,允許在匿名函數創建后對其進行更多的控制。
除了此處列出的方法,還有一個 __invoke 方法。這是為了與其他實現了 __invoke()魔術方法 的對象保持一致性,但調用匿名函數的過程與它無關。
類摘要
Closure { /* 方法 */ __construct ( void ) public static Closure bind ( Closure $closure , object $newthis [, mixed $newscope = 'static' ] ) public Closure bindTo ( object $newthis [, mixed $newscope = 'static' ] ) }
Table of Contents
Closure::__construct — 用于禁止實例化的構造函數
Closure::bind — 復制一個閉包,綁定指定的$this對象和類作用域。
Closure::bindTo — 復制當前閉包對象,綁定指定的$this對象和類作用域。
判斷是不是閉包
if ( $this->{$method} instanceof Closure ) { return call_user_func_array($this->{$method},$args); } else { throw new Exception("Invalid Function"); } //一切都要自行測試 if ( $class instanceof Closure ) { } else { }
以上是“php中instanceof和判斷閉包Closure的操作案例”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。