<?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' => 'Прыщебляди соснули']
]);
