array access

Интерфейс ArrayAccess

С помощью этого интерфейса можно работать с объектом, как с массивом, т.е. без стрелочек, и обращаться как к элементам массива через квадратные скобки [ ]. Синтаксис интерфейса ArrayAccess:

interface ArrayAccess {
   public function offsetExists($offset); //да или нет
   punlic function offsetSet($offset, $value); //что-то выставляет
   public function offsetGet($offset); //что-то получаем
   public function offsetUnset($offset); //удаление
}

Рассмотрим на рабочем примере:

class Book implements ArrayAccess { //имплементация ArrayAccess
   public $title;
   public $author;
   public $isbn;
   function offsetExists($item){ //проверяем: да или нет
     return isset($this->$item);}
   function offsetUnset($item){ //удаляем
      unset ($this->$item);}
   function offsetSet($item, $value){ //устанавливаем значение
      $this->$item =$value;}
   function offsetGet($item){ //что-то возвращаем
      return $this->$item;}
}
$book = new Book();
$book['title'] = 'PHP5'; //обращаемся c объектом как с элементом массива



Добавить комментарий

Ваш e-mail не будет опубликован.