中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php spl庫的使用

發布時間:2020-08-01 09:57:10 來源:網絡 閱讀:1174 作者:new個對象 欄目:web開發

1.SPL 是什么?
SPL:standard php library php標準庫,此 從php5.0起開始內置的組件和接口,在5.3以后逐漸成熟。因為內置在php5開發環境中,無需任何配置。
根據官方定義,“a collection of interfaces and classes that are meant to solve standard problems.”
然而在目前的使用者,spl更多地被看做是一種使object模仿的array行為的interfaces和classes。
SPL對PHP引擎進行了擴展,例如ArrayAccess、Countable和SeekableIterator等接口,它們用于以數組形式操作對象。同時還可以使用RecursiveIterator,ArrayObjects等其他迭代器進行數組的迭代操作。
他還內置了幾個對象,例如Exceptions,SplObserver,spltorage以及splautoloadregister,splclasses,iteratorapply等的幫助函數,用于重載對應的功能。
2.Iterator
spl的核心概念是Iterator,這指一種設計模式(Design Pattern),"provide an object which traverses some aggregate structure,abstracting away assumptions about the implementation of that structure."
通俗的說,Iterator能夠使許多不同的數據結構,都能有統一的操作界面,比如一個數據庫的結果集、同一目錄的文件集或者一個文本中每一行構成的集合。
SPL規定,所有部署了Iterator界面的class,都可以用在foreach loop中。Iterator界面包含以下必須部署的五個方法:

  • current()

    This method returns the current index's value. You are solely
    responsible for tracking what the current index is as the
    interface does not do this for you.

    • key()

      This method returns the value of the current index's key. For
      foreach loops this is extremely important so that the key
      value can be populated.

    • next()

      This method moves the internal index forward one entry.

    • rewind()

      This method should reset the internal index to the first element.

    • valid()

      This method should return true or false if there is a current
      element. It is called after rewind() or next().

ArrayAccess界面
部署ArrayAccess界面,可以使object像Array那樣操作,但是必須包含四個必須部署的方法

  • offsetExists($offset)
    This method is used to tell php if there is a value
    for the key specified by offset. It should return
    true or false.
  • offsetGet($offset)
    This method is used to return the value specified
    by the key offset.
  • offsetSet($offset, $value)
    This method is used to set a value within the object,
    you can throw an exception from this function for a
    read-only collection.
  • offsetUnset($offset)
    This method is used when a value is removed from
    an array either through unset() or assigning the key
    a value of null. In the case of numerical arrays, this
    offset should not be deleted and the array should
    not be reindexed unless that is specifically the
    behavior you want.
    IteratorAggregate界面
    RecursiveIterator界面
    這個界面用于遍歷多層數據,繼承了Iterator界面,因而也具有標準的current()/key()/next()和valid()方法。同時它自己還規定了getChildren()和hasChildren()方法。
    SeekableIterator界面
    SeekableIterator界面也是Iterator界面的延伸,除了Iterator的五個方法以外,還規定了seek()方法,參數是元素的位置,返回該元素。若該位置不存在,則拋出OutOfBoundsException。
    Countable界面
    這個界面規定了一個count()方法,返回結果集的數量
    3.SPL Classes
    spl內置類
    查看所有內置類
    foreach(spl_classes() as $key=>$val){
    echo $key."=>".$val.'<br/>';
    }
    DirectoryIterator類
    這個類用來查看一個目錄中所有文件和子目錄
    foreach(new DirectoryIterator('./') as $Item)
    {
    echo $Item.'<br/>';
    }
    catch(Exception $e)
    {
    echo 'No files Found!';
    }

ArrayObject類
此類將Array轉換為Object

ArrayIterator類
這個類實際上是對ArrayObject類的補充,為后者提供遍歷功能。也支持offset類方法和count()方法

RecursiveArrayIterator類和RecursiveIteratorIterator類
ArrayIterator類和ArrayObject類,只支持遍歷一維數組,如果要遍歷多維數組,必須先用RecursiveIteratorIterator生成一個Iterator,然后再對這個Iterator使用RecursiveIteratorIterator
FilterIterator
FilterIterator類可以對元素進行過濾,只要在accept()方法中設置過濾條件就可以了。

SimpleXMLIterator類
這個類用來遍歷xml文件
CachingIterator類
這個類有一個hasNext()方法,用來判斷是否還有下一個元素
LimitIterator類
這個類用來限定返回結果集的數量和位置,必須提供offset和limit兩個參數,與SQL命令中的limit語句類似
SplFileObject類
這個類用來對文本文件進行遍歷

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铁岭市| 长垣县| 璧山县| 吉水县| 东乡县| 肇东市| 九龙城区| 禄劝| 溧阳市| 桦川县| 蒙山县| 毕节市| 安义县| 和政县| 汾西县| 江北区| 凌海市| 遂川县| 江陵县| 亚东县| 富川| 新平| 衡水市| 集贤县| 农安县| 海城市| 津南区| 隆林| 汝城县| 富锦市| 绥滨县| 合水县| 安塞县| 都昌县| 邵武市| 松桃| 灵璧县| 英吉沙县| 望城县| 突泉县| 天峨县|