ArrayAccess
Gränssnittet ArrayAccess
(PHP 5, PHP 7, PHP 8)
Introduktion
Gränssnitt för att tillhandahålla åtkomst till objekt som om de vore arrayer.
Gränssnittssammanfattning
interface ArrayAccess {
/* Metoder */
public offsetExists(mixed $offset): bool
public offsetGet(mixed $offset): mixed
public offsetSet(mixed $offset, mixed $value): void
public offsetUnset(mixed $offset): void
}
Exempel
Exempel #1 Grundläggande användning
<?php
class Obj implements ArrayAccess {
public $container = [
"one" => 1,
"two" => 2,
"three" => 3,
];
public function offsetSet($offset, $value): void {
if (is_null($offset)) {
$this->container[] = $value;
} else {
$this->container[$offset] = $value;
}
}
public function offsetExists($offset): bool {
return isset($this->container[$offset]);
}
public function offsetUnset($offset): void {
unset($this->container[$offset]);
}
public function offsetGet($offset): mixed {
return isset($this->container[$offset]) ? $this->container[$offset] : null;
}
}
$obj = new Obj;
var_dump(isset($obj["two"]));
var_dump($obj["two"]);
unset($obj["two"]);
var_dump(isset($obj["two"]));
$obj["two"] = "A value";
var_dump($obj["two"]);
$obj[] = 'Append 1';
$obj[] = 'Append 2';
$obj[] = 'Append 3';
print_r($obj);
?>
Ovanstående exempel kommer att ge något liknande:
bool(true)
int(2)
bool(false)
string(7) "A value"
obj Object
(
[container:obj:private] => Array
(
[one] => 1
[three] => 3
[two] => A value
[0] => Append 1
[1] => Append 2
[2] => Append 3
)
)
Innehållsförteckning
- ArrayAccess::offsetExists — Huruvida en offset existerar
- ArrayAccess::offsetGet — Hämtar en offset
- ArrayAccess::offsetSet — Tilldelar ett värde till den angivna offseten
- ArrayAccess::offsetUnset — Avlägsnar en offset
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/class.arrayaccess.php
PHP
Språkreferens
Fördefinierade Gränssnitt och Klasser
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webserver.