Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Code-Erklärung der ArrayAccess-Schnittstelle in PHP

Detaillierte Code-Erklärung der ArrayAccess-Schnittstelle in PHP

伊谢尔伦
伊谢尔伦Original
2017-06-29 09:47:261553Durchsuche

Abhängigkeitsinjektion in Slim basiert auf Pickel, also habe ich mich noch einmal mit Pickel beschäftigt. Im Vergleich zu der Abhängigkeitsinjektionsklasse, die ich zuvor geschrieben habe, hat Pimple eine sehr neue Verwendung, anstatt

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

zu verwenden, wird es in ein Array injiziert:

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

Ich habe es nur entdeckt Als ich mir den Quellcode ansah, stellte sich heraus, dass der Trick in der von PHP5 bereitgestellten ArrayAccess-Schnittstelle liegt.
Offizielle Definition: Eine Schnittstelle, die den Zugriff auf Objekte wie den Zugriff auf Arrays ermöglicht.
Diese Schnittstelle definiert hauptsächlich vier abstrakte Methoden:

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 ) #删除数据

Wenn Sie möchten, dass das Objekt wie ein PHP-Array verwendet wird, müssen wir es implementieren ArrayAccess Schnittstelle

Der Code lautet wie folgt:

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


Das folgende Beispiel zeigt, wie diese Schnittstelle verwendet wird, ist aber nicht vollständig ist genug, um zu verstehen: -> PHP ruft die Methode offsetGet() auf und ruft dann von dieser Methode aus die datenbankbezogene Methode getUserId() auf.

Das obige ist der detaillierte Inhalt vonDetaillierte Code-Erklärung der ArrayAccess-Schnittstelle in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn