Junior — Middle
Qaysi maxsus usul ob'ektga massiv yoki elementlar to'plami sifatida murojaat qilish imkonini beradi?
sobes.tech AI
AIdan javob
PHP'da maxsus ArrayAccess usuli ob'ektning massiv kabi harakat qilishiga imkon beradi, ya'ni uning elementlariga kvadrat qavslar yordamida murojaat qilish.
Buning uchun, sinf ArrayAccess interfeysini amalga oshirishi kerak, u to'rt ta metodni o'z ichiga oladi:
offsetExists($offset)—$offsetkalitiga ega element mavjudligini tekshiradi.offsetGet($offset)—$offsetkalitiga ega elementning qiymatini qaytaradi.offsetSet($offset, $value)—$offsetuchun$valueqiymatini o'rnatadi.offsetUnset($offset)—$offsetkalitiga ega elementni o'chiradi.
Misol:
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']; // 'value' ni chiqaradi
Shu tarzda, ArrayAccess interfeysini amalga oshirish ob'ektga massiv kabi murojaat qilish imkonini beradi.