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

伊谢尔伦
リリース: 2023-03-11 22:00:02
オリジナル
1569 人が閲覧しました

スリムの依存性注入はニキビに基づいているので、もう一度ニキビを学びに行きました。以前に書いた依存性注入クラスと比較すると、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート