Сегодня расскажу об интересном профессиональном методе перегрузки метода [].
Чтобы реализовать перегрузку этого метода следует обратить особое внимание на классы SPL — точнее на один из них — ArrayObject.
Сложная задача решается простым действием — нам нужно наследоваться от этого класса и реализовать метод offsetSet, который как раз отвечает за реализацию оператора [].
class NewArray extends ArrayObject {
public function offsetSet($inc, $value) {
echo 'new ' . $value;
parent::offsetSet($inc, $value);
}
}
$array = new NewArray;
$array[] = 111;
Думаю с приведенного примера предельно ясно, как работать с унаследованным методом. В методе offsetSet мы можем производить любые действия, которые нам необходимо.