Junior — Middle
Kura īpaša metode ļauj piekļūt objektam kā masīvam vai elementu kolekcijai?
sobes.tech AI
Atbilde no AI
PHP īpašā metode ArrayAccess ļauj objektam uzvesties kā masīvam, tas ir, piekļūt tā elementiem, izmantojot kvadrātiekavas.
Lai to izdarītu, klasei jāievieš ArrayAccess saskarne, kas satur četrus metodes:
offsetExists($offset)— pārbauda, vai eksistē elements ar atslēgu$offset.offsetGet($offset)— atgriež elementa ar atslēgu$offsetvērtību.offsetSet($offset, $value)— iestata$valuevērtību atslēgai$offset.offsetUnset($offset)— izdzēš elementu ar atslēgu$offset.
Piemērs:
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']; // izvada 'value'
Tādējādi ArrayAccess saskarnes īstenošana ļauj piekļūt objektam kā masīvam.