<?php
class MakakaArray implements ArrayAccess {
public function offsetExists ($offset) {
return false;
}
public function offsetGet ($offset) {
return null;
}
public function offsetSet ($offset, $value) {
echo "${value['name']} говорит: «${value['message']}».\n";
}
public function offsetUnset ($offset) {
}
public function __construct ($data) {
foreach($data as $key => $value) {
$this[$key] = $value;
}
}
}
$massiv = new MakakaArray([
['name' => 'Петушок', 'message' => 'Кукареку'],
['name' => 'Корова', 'message' => 'Мууу'],
['name' => 'Свинья', 'message' => 'Хрю'],
['name' => 'Syoma', 'message' => 'Прыщебляди соснули']
]);
PD9waHAKCmNsYXNzIE1ha2FrYUFycmF5IGltcGxlbWVudHMgQXJyYXlBY2Nlc3MgewogICAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEV4aXN0cyAoJG9mZnNldCkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRHZXQgKCRvZmZzZXQpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRTZXQgKCRvZmZzZXQsICR2YWx1ZSkgewogICAgICAgIGVjaG8gIiR7dmFsdWVbJ25hbWUnXX0g0LPQvtCy0L7RgNC40YI6IMKrJHt2YWx1ZVsnbWVzc2FnZSddfcK7LlxuIjsKICAgIH0KICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCAoJG9mZnNldCkgewogICAgfQogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0ICgkZGF0YSkgewogICAgICAgIGZvcmVhY2goJGRhdGEgYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgJHRoaXNbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgfQogICAgfQp9CgokbWFzc2l2ID0gbmV3IE1ha2FrYUFycmF5KFsKICAgIFsnbmFtZScgPT4gJ9Cf0LXRgtGD0YjQvtC6JywgJ21lc3NhZ2UnID0+ICfQmtGD0LrQsNGA0LXQutGDJ10sCiAgICBbJ25hbWUnID0+ICfQmtC+0YDQvtCy0LAnLCAgJ21lc3NhZ2UnID0+ICfQnNGD0YPRgyddLAogICAgWyduYW1lJyA9PiAn0KHQstC40L3RjNGPJywgICdtZXNzYWdlJyA9PiAn0KXRgNGOJ10sCiAgICBbJ25hbWUnID0+ICdTeW9tYScsICAgJ21lc3NhZ2UnID0+ICfQn9GA0YvRidC10LHQu9GP0LTQuCDRgdC+0YHQvdGD0LvQuCddCl0pOwo=