本文實例講述了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 中被引入)會產生這個類型的對象。在過去,這個類被認為是一個實現細節(jié),但現在可以依賴它做一些事情。自 PHP 5.4 起,這個類帶有一些方法,允許在匿名函數創(chuàng)建后對其進行更多的控制。
除了此處列出的方法,還有一個 __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
判斷是不是閉包
if ( $this->{$method} instanceof Closure ) { return call_user_func_array($this->{$method},$args); } else { throw new Exception("Invalid Function"); } //一切都要自行測試 if ( $class instanceof Closure ) { } else { }
參考:
http://php.net/manual/zh/language.operators.type.php
http://php.net/manual/zh/class.closure.php
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
標簽:宜賓 寶雞 婁底 鎮(zhèn)江 黃南 湛江 南陽 銅川
巨人網絡通訊聲明:本文標題《php的instanceof和判斷閉包Closure操作示例》,本文關鍵詞 php,的,instanceof,和,判斷,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。