Junior — Middle
Kuris specialus metodas leidžia prieiti prie objekto kaip masyvo ar elementų kolekcijos?
sobes.tech AI
Atsakymas iš AI
PHP specialusis metodas ArrayAccess leidžia objektui elgtis kaip masyvui, tai yra, prieiti prie jo elementų naudodami kvadratinius skliaustus.
Tam klasė turi įgyvendinti ArrayAccess sąsają, kuri apima keturis metodus:
offsetExists($offset)— tikrina, ar egzistuoja elementas su raktu$offset.offsetGet($offset)— grąžina elemento su raktu$offsetreikšmę.offsetSet($offset, $value)— nustato$valuereikšmę raktui$offset.offsetUnset($offset)— ištrina elementą su raktu$offset.
Pavyzdys:
class MyCollection implements ArrayAccess {
private $container = [];
public function offsetExists($offset) {
return isset($this->container[$offset]);
}
public function offsetGet($offset) {
return $this->container[$offset] ?? null;
}
public function offsetSet($offset, $value) {
if (is_null($offset)) {
$this->container[] = $value;
} else {
$this->container[$offset] = $value;
}
}
public function offsetUnset($offset) {
unset($this->container[$offset]);
}
}
$obj = new MyCollection();
$obj['key'] = 'value';
echo $obj['key']; // išveda 'value'
Šiuo būdu, ArrayAccess sąsajos įgyvendinimas leidžia pasiekti objektą kaip masyvą.