ホームページ  >  記事  >  バックエンド開発  >  PHP での ArrayAccess インターフェイスの詳細なコード説明

PHP での ArrayAccess インターフェイスの詳細なコード説明

伊谢尔伦
伊谢尔伦オリジナル
2017-06-29 09:47:261574ブラウズ

スリムの依存性注入はニキビに基づいているので、もう一度ニキビを学びに行きました。以前に書いた依存性注入クラスと比較すると、pimple は

$container->session_storage = function ($c) {
    return new $c['session_storage_class']($c['cookie_name']);
};

を使用する代わりに、配列に注入されます。 ソース コードを見てみると、そのトリックは次のとおりです。 php5 によって提供される ArrayAccess インターフェイス。

正式な定義: 配列にアクセスするなど、オブジェクトにアクセスする機能を提供するインターフェイス。

このインターフェースは主に 4 つの抽象メソッドを定義します:

$container['session_storage'] = function ($c) {
    return new $c['session_storage_class']($c['cookie_name']);
};

オブジェクト

を PHP arrayのように使用したい場合は、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 ) #删除数据

次の例は、このインターフェイスの使用方法を示しています。この例は完全ではありませんが、理解するには十分です。:->


コードは次のとおりです。

interface ArrayAccess 
boolean offsetExists($index) 
mixed offsetGet($index) 
void offsetSet($index, $newvalue) 
void offsetUnset($index)

実際、$userMap['John' ] 検索が実行されると、PHP は offsetGet() メソッドを呼び出し、そこからデータベース関連の getUserId() メソッドが呼び出されます。

以上がPHP での ArrayAccess インターフェイスの詳細なコード説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。