[英]what is the purpose of ArrayAccess interface in php?
ArrayAccess 接口是
用於提供訪問對象作為數組。
正如文檔所說。 但大多數數組函數都不起作用。 普通的對象函數也有這種轉換的問題。 那是什么想法。 所以例如
如果沒有明確的原因,我們為什么要讓自己痛苦。
這個想法是允許您使用數組語法訪問對象的屬性。 這通常非常方便,許多實用程序類都實現了它。 例如,Laravel 中的 Eloquent 模型實現了它,集合也是如此。
這並不意味着實現該接口的對象可以作為參數傳遞給數組函數之一。 然而,如果對象存儲的數據是數組,那么在對象上實現類似的方法通常是有意義的——例如,Laravel 集合實現了map()
和filter()
,這些方法可能在內部使用它們的數組對應物。 使用這些方法通常會使代碼更清晰、更容易理解,因為您可以將每個步驟鏈接起來。 像 JavaScript 和 Python 這樣的語言(其中數組是具有這些開箱即用的方法的對象)在歷史上更擅長函數式編程,並且使用 Laravel 集合之類的東西而不是數組也可以在 PHP 中實現這種編程風格。 我強烈推薦 Adam Wathan 所著的Refactoring to Collections一書以了解更多詳細信息。
在檢查像 PsySh 這樣的 REPL 中的對象時,它也很有用,因為您可以更輕松地訪問單個屬性。 實現Traversable
也意味着您可以在檢查數據時對其進行迭代。 您還可以鍵入提示接口,以便方法可以接受實現它的任何內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.