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

伊谢尔伦
Freigeben: 2023-03-11 22:00:02
Original
1505 Leute haben es durchsucht

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']);
};
Nach dem Login kopieren

zu verwenden, wird es in ein Array injiziert:

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

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 ) #删除数据
Nach dem Login kopieren

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)
Nach dem Login kopieren


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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!