您現在的位置是:電腦技術吧?>? 基礎知識 ??>??接口的定義,usb定義??>??正文詳情

接口的定義,usb定義

乘語夢2019-12-13 12:22:30 人圍觀
簡介type-c接口引腳定義圖本文主要介紹PHP中的六個預定義接口。本文介紹了traversable、iterator、iteratoraggregate、arrayaccess、seriaminidp接口

這篇文章主要介紹了PHP中預定義的6種接口介紹,本文講解了Traversable、Iterator、IteratorAggregate、ArrayAccess、Serializable、Closure,需要的朋友可以參考下  PHP預定義了6個接口介紹如下:  1.Traversable遍歷接口  呵呵!其實它不是一個在PHP中可以使用的接口,內部類才可使用,它有一個用途就是檢測一個類是否可以遍歷。

  ? 1 2 3 if($class instanceof Traversable) { //foreach }   2.Iterator迭代器接口  接口摘要:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 Iterator extends Traversable { //返回當前索引游標指向的元素 abstract public mixed current(void) //返回當前索引游標指向的元素的鍵名 abstract public scalar key(void) //移動當前索引游標指向下一元素 abstract public void next(void) //重置索引游標的指向第一個元素 abstract public void rewind(void) //判斷當前索引游標指向的是否是一個元素,常常在調用 rewind()或 next()使用 abstract public boolean valid(void) }   以上可以讓一個類實現一個基本的迭代功能,如下可以看到迭代的調用順序:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 class myIterator implements Iterator { private $position = 0 ; private $array = array( firstelement , secondelement , lastelement , ); public function __construct () { $this - position = 0 ; } function rewind () { var_dump ( __METHOD__ ); $this - position = 0 ; } function current () { var_dump ( __METHOD__ ); return $this - array [ $this - position ]; } function key () { var_dump ( __METHOD__ ); return $this - position ; } function next () { var_dump ( __METHOD__ ); $this - position ; } function valid () { var_dump ( __METHOD__ ); return isset( $this - array [ $this - position ]); } } $it = new myIterator ; foreach( $it as $key = $value ) { var_dump ( $key , $value ); echo n ; }   3.IteratorAggregate聚合式迭代器接口  接口摘要:  ? 1 2 3 4 5 IteratorAggregate extends Traversable { //獲取外部迭代器 abstract public Traversable getIterator ( void ) }   getIterator是一個Iterator或Traversable接口的類的一個實例。

如下獲取外部迭代器實現迭代訪問。

  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 class myData implements IteratorAggregate { public $property1 = Public property one ; public $property2 = Public property two ; public $property3 = Public property three ; public function __construct () { $this - property4 = last property ; } public function getIterator () { return new ArrayIterator ( $this ); } } $obj = new myData ; foreach( $obj as $key = $value ) { var_dump ( $key , $value ); echo n ; }   4.ArrayAccess數組式訪問接口  接口摘要:  ? 1 2 3 4 5 6 7 ArrayAccess { /* 方法 */ abstract public boolean offsetExists ( mixed $offset ) //檢查偏移位置是否存在 abstract public mixed offsetGet ( mixed $offset ) //獲取一個偏移位置的值 abstract public void offsetSet ( mixed $offset , mixed $value ) //設置一個偏移位置的值 abstract public void offsetUnset ( mixed $offset ) //復位一個偏移位置的值 }   如下可像訪問數組一樣訪問對象:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 class obj implements arrayaccess { private $container = array(); public function __construct () { $this - container = array( one = 1 , two = 2 , three = 3 , ); } public function offsetSet ( $offset , $value ) { if ( is_null ( $offset )) { $this - container [] = $value ; } else { $this - container [ $offset ] = $value ; } } public function offsetExists ( $offset ) { return isset( $this - container [ $offset ]); } public function offsetUnset ( $offset ) { unset( $this - container [ $offset ]); } public function offsetGet ( $offset ) { return isset( $this - container [ $offset ]) ? $this - container [ $offset ] : null ; } } $obj = new obj ; var_dump (isset( $obj [ two ])); var_dump ( $obj [ two ]); unset( $obj [ two ]); var_dump (isset( $obj [ two ])); $obj [ two ] = A value ; var_dump ( $obj [ two ]); $obj [] = 'Append 1' ; $obj [] = 'Append 2' ; $obj [] = 'Append 3' ; print_r ( $obj );   5.Serializable序列化接口  接口摘要:  ? 1 2 3 4 5 6 Serializable { /* 方法 */ abstract public string serialize ( void ) //對象的字符串表示 abstract public mixed unserialize ( string $serialized ) // 構造對象 }   實現該接口的類不再支持__sleep()和__wakeup()。

使用很簡單,只要序列化對象時serialize方法會被調用,當反序列化時,unserialize方法被調用。

  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 class obj implements Serializable { private $data ; public function __construct () { $this - data = My private data ; } public function serialize () { return serialize ( $this - data ); } public function unserialize ( $data ) { $this - data = unserialize ( $data ); } public function getData () { return $this - data ; } } $obj = new obj ; $ser = serialize ( $obj ); print_r($ser); $newobj = unserialize ( $ser ); print_r($newobj);   6.Closure  接口摘要:  ? 1 2 3 4 5 6 Closure { /* 方法 */ __construct ( void ) //用于禁止實例化的構造函數 public static Closure bind ( Closure $closure , object $newthis [, mixed $newscope = 'static' ] ) //復制一個閉包,綁定指定的$this對象和類作用域。

public Closure bindTo ( object $newthis [, mixed $newscope = 'static' ] ) //復制當前閉包對象,綁定指定的$this對象和類作用域。

}   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class A { private static $sfoo = 1 ; private $ifoo = 2 ; } $cl1 = static function() { return A :: $sfoo ; }; $cl2 = function() { return $this - ifoo ; }; $bcl1 = Closure :: bind ( $cl1 , null , 'A' ); $bcl2 = Closure :: bind ( $cl2 , new A (), 'A' ); echo $bcl1 (), n ; echo $bcl2 (), n ;

版權聲明:本文由 乘語夢 整理編輯。

原標題:什么是接口,接口實現

轉載注明出處:http://www.dn9ww09s.icu/basics/15421.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • wps上傳文件大小限制,php上傳文件大小限制

    wps上傳文件大小限制,php上傳文件大小限制 相關圖片怎樣調整照片文件大小在將文件上載到服務器之前,ASP文件上載組件用于確定文件大小是否超過指定的大小。在本例中,upload?file upload組件file.filesize10文檔大小超出上傳限制...

  • 粒子群算法實例,什么是算法

    粒子群算法實例,什么是算法 相關圖片nagle算法本文主要介紹PHP哈希算法:一個times33算法代碼的例子。本文直接給出了實現代碼。你可以參考你朋友的最新一本書,里面提到了一些散列算法。最讓人印象深刻的是,dekker算法...

  • phpstorm快捷鍵,phpstorm快捷鍵大全

    phpstorm快捷鍵,phpstorm快捷鍵大全 相關圖片Phpstorm快捷鍵搜索文件名本文主要介紹PHP-ide格式的常用快捷鍵。本文分別列出了MAC系統和windows系統下phpstorm的快捷鍵。對于需要參考下一條的朋友,請使用Mac機phps注釋快捷鍵...

  • ASP23,ASP技術

    ASP23,ASP技術 相關圖片aspzNextrecordset和getrows是記錄集的兩個屬性,對于提高批量查詢的速度非常有效。你可能用得很少。共享這兩個方法的用法:getrows方法:將記錄集asp60...

  • 字符串忽略大小寫,字符串字母大小寫轉換

    字符串忽略大小寫,字符串字母大小寫轉換 相關圖片字符串變大寫常用的替換函數代碼如下:公共函數高光(s,f)dimtl,TM,TR,K TL=TM=TR=s K=instr(1,TR,f,1)do whilek0 TL=Tjava字符串大小寫轉換函數...

  • 怎么查信用卡卡號,信用卡卡號查詢

    怎么查信用卡卡號,信用卡卡號查詢 相關圖片信用卡還款本文主要介紹了驗證信用卡號是否正確的PHP函數。本文直接給出了實現代碼。作為參考,您可以使用以下PHP函數來驗證卡號是否為信用卡:?12345678910111信用卡怎么還款...

  • 替換空格,excel去空格

    替換空格,excel去空格 相關圖片怎么把空格去掉本文主要介紹了壓縮ASPX頁面和消除冗余空間的兩種方法。可以在發布頁面之前壓縮ASPX,而不會浪費web服務器的CPU。您可以參考以下兩種方法給您的朋友:1)逐如何把空...

  • excel示例表,excel表格例子

    excel示例表,excel表格例子 相關圖片excel例子本文主要介紹了asp.net讀取excel文件的三種方法:OLEDB讀取excel文件、COM組件讀取excel文件和文件流讀取excel文件。有需要的朋友可以excel表格篩選...

  • %c,8c

    %c,8c 相關圖片7c顯然手動設置本地網絡是不可取的,所以我們需要讓程序幫助我們完成它。需要的朋友可以指網絡在我們今天的生活和工作中越來越重要的作用。可以說,沒有網絡,我們就無法正常...

  • html打開asp頁面,aspnet頁面傳值方式

    html打開asp頁面,aspnet頁面傳值方式 相關圖片asp開發網頁本文主要介紹了asp.net錯誤頁處理的實例。對于朋友,請參考以下1。新golbal.asax的代碼如下:void application[error(obje網頁創建asp...

熱評文章

  • asp生成驗證碼,生成驗證碼

    asp生成驗證碼,生成驗證碼 相關圖片更換asp的驗證碼下面的代碼是一個使用ASP生成圖像驗證代碼的程序。大多數寫驗證碼的人都會知道。讓我們看看如何生成這個圖像驗證代碼。%Option ExplicitResponsasp輸出漢字驗證碼...

  • php 函數,php常用函數

    php 函數,php常用函數 相關圖片php重復函數本文主要介紹了PHP中動態調用函數的方法,分析了在PHP中實現動態函數的原理和步驟。您可以引用PHP將函數名按字符串傳遞給變量,然后使用該變量動態調用函數。下面php重...

  • iOS3D游戲,ios 3dtouch

    iOS3D游戲,ios 3dtouch 相關圖片ios3dtouch在哪開首先需要獲取mono.data.sqlite.dll文件和system.data.dll文件。如果你在MAC上使用unity,那就太悲劇了。我找不到這兩個文件,3dtouch怎么用...

  • 土地利用總體規劃修編,土地利用總體規劃概念

    土地利用總體規劃修編,土地利用總體規劃概念 相關圖片土地利用規劃圖恐怕很少有經常上網的網友沒有去過聊天室。如果你稍加注意,你會發現大多數聊天室都是用CGI或Java開發的土地利用總體規劃 面積...

  • 一對象,對象的創建和使用

    一對象,對象的創建和使用 相關圖片對象是什么意思ASP有五個內置對象:服務器、請求、響應、應用程序和會話。現在讓我們用例子來解釋它們。第一個是最常用的響應對象。示例1在網頁中使用響應創造對象...

  • 用戶名已存在什么意思,驗證用戶名是否存在

    用戶名已存在什么意思,驗證用戶名是否存在 相關圖片登錄用戶名怎么填寫%Dim Conn,rsdim connstrdim sqlcmddim username'get username query string username12306注冊用戶名已存在...

  • 中獎概率的公式,中獎率算法

    中獎概率的公式,中獎率算法 相關圖片31選7中獎概率本文將與大家分享PHP中獎概率算法,該算法可用于刮卡、大轉盤等彩票算法。用法很簡單。代碼中有詳細的注釋。你一讀就明白了。如果你需要的話,請參考他們。我們首...

  • asp重復的組件名稱,aspflash組件

    asp重復的組件名稱,aspflash組件 相關圖片asp組件上傳文件字符空間不足%@LANGUAGE=VBSCRIPT CODEPAGE=936%%Response.Expires=0Pic=Request(p)PointX=CInt(Reasp調用flash...

  • 用遞歸求數組的和,遞歸數組排序

    用遞歸求數組的和,遞歸數組排序 相關圖片js數組遍歷與遞歸本文介紹了一個數組遞歸轉義法的PHP實現實例,供大家參考。具體方法如下:PHP需要將數組轉換成XML是常見的,實現方法也很多。百度已經找到了各種實現方法,但它基...

  • 上傳圖片格式jpg,如何上傳圖片

    上傳圖片格式jpg,如何上傳圖片 相關圖片上傳照片格式不對怎么辦由于圖片是上傳的,所以在上傳之前需要對文件進行驗證,看看要上傳的圖片文件是否需要在最近的工作中完成上傳圖片的功能。由于圖像是上載的,因此在上...

關注微信

变脸官网查询