Heim > Backend-Entwicklung > PHP-Tutorial > PHP ArrayAccess-Schnittstelle

PHP ArrayAccess-Schnittstelle

王林
Freigeben: 2023-09-06 06:00:01
nach vorne
1508 Leute haben es durchsucht

PHP ArrayAccess 接口

Einführung

In PHP wird die Schnittstelle ArrayAccess verwendet, um eine Klasse zu entwickeln, die einen Array-ähnlichen Zugriff auf eine der Array-Eigenschaften bereitstellt. Eine solche Array-Eigenschaft kann während der Objekterstellung manipuliert werden, ohne sie offenzulegen. Die ArrayAccess-Schnittstelle definiert die folgenden abstrakten Methoden

Syntax

ArrayAccess {
   /* Methods */
   abstract public offsetExists ( mixed $offset ) : bool
   abstract public offsetGet ( mixed $offset ) : mixed
   abstract public offsetSet ( mixed $offset , mixed $value ) : void
   abstract public offsetUnset ( mixed $offset ) : void
}
Nach dem Login kopieren

Methoden

ArrayAccess::offsetExists – Ob der Offset vorhanden ist

ArrayAccess::offsetGet – Der abzurufende Offset < /p>

ArrayAccess: :offsetSet – Weist dem angegebenen Offset einen Wert zu.

ArrayAccess::offsetUnset – Setzt den Offset zurück.

ArrayAccess::offsetUnset – Offset aufheben. p>

ArrayAccess-Beispiel

Im folgenden Beispiel ist das assoziative Array eine interne private Eigenschaft von myclass. Der Schlüssel fungiert als Offset. Wir können Elemente in einem Array festlegen, abrufen und deaktivieren. Wenn kein Offset angegeben ist, wird er als Ganzzahl behandelt und jedes Mal auf den nächsten Index erhöht.

Beispiel

Live-Demonstration

<?php
class myclass implements ArrayAccess {
   private $arr = array();
   public function __construct() {
      $this->arr = array(
         "Mumbai" => "Maharashtra",
         "Hyderabad" => "A.P.",
         "Patna" => "Bihar",
      );
   }
   public function offsetSet($offset, $value) {
      if (is_null($offset)) {
         $this->arr[] = $value;
      } else {
         $this->arr[$offset] = $value;
      }
   }
   public function offsetExists($offset) {
      return isset($this->arr[$offset]);
   }
   public function offsetUnset($offset) {
      unset($this->arr[$offset]);
   }
   public function offsetGet($offset) {
      return isset($this->arr[$offset]) ? $this->arr[$offset] : null;
   }
}
$obj = new myclass();
var_dump(isset($obj["Mumbai"]));
var_dump($obj["Mumbai"]);
unset($obj["Mumbai"]);
var_dump(isset($obj["Mumbai"]));
$obj["Bombay"] = "Maharashtra";
var_dump($obj["Bombay"]);
$obj["Chennai"] = &#39;Tamilnadu&#39;;
$obj[] = &#39;New State&#39;;
$obj["Hyderabad"] = &#39;Telangana&#39;;
print_r($obj);
?>
Nach dem Login kopieren

Ausgabe

Das obige Programm zeigt die folgende Ausgabe

bool(true)
string(11) "Maharashtra"
bool(false)
string(11) "Maharashtra"
myclass Object(
   [arr:myclass:private] => Array(
      [Hyderabad] => Telangana
      [Patna] => Bihar
      [Bombay] => Maharashtra
      [Chennai] => Tamilnadu
      [0] => New State
   )

)
Nach dem Login kopieren

Array-Eigenschaften der Klasse können auch indizierte Arrays sein. Als Offset fungiert in diesem Fall der Index des Elements (beginnend bei 0). Wenn die Methode offsetSet(0 ohne den Offset-Parameter aufgerufen wird, wird der Array-Index auf die nächste verfügbare Ganzzahl erhöht

Beispiel

<?php
class myclass implements ArrayAccess {
   private $arr = array();
   public function __construct() {
      $this->arr = array("Mumbai", "Hyderabad", "Patna");
   }
   public function offsetSet($offset, $value) {
      if (is_null($offset)) {
         $this->arr[] = $value;
      } else {
         $this->arr[$offset] = $value;
      }
   }
   public function offsetExists($offset) {
      eturn isset($this->arr[$offset]);
   }
   public function offsetUnset($offset) {
      unset($this->arr[$offset]);
   }
   public function offsetGet($offset) {
      return isset($this->arr[$offset]) ? $this->arr[$offset] : null;
   }
}
$obj = new myclass();
var_dump(isset($obj[0]));
var_dump($obj[0]);
unset($obj[0]);
var_dump(isset($obj[0]));
$obj[3] = "Pune";
var_dump($obj[3]);
$obj[4] = &#39;Chennai&#39;;
$obj[] = &#39;NewDelhi&#39;;
$obj[2] = &#39;Benguluru&#39;;
print_r($obj);
?>
Nach dem Login kopieren

Ausgabe

Das obige Programm zeigt die folgende Ausgabe

bool(true)
string(6) "Mumbai"
bool(false)
string(4) "Pune"
myclass Object(
   [arr:myclass:private] => Array(
      [1] => Hyderabad
      [2] => Benguluru
      [3] => Pune
      [4] => Chennai
      [5] => NewDelhi
   )

)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPHP ArrayAccess-Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
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