Профессиональное программирование на PHP

Страница 69 из 591


72 Глава 2 Объектно-ориентированное программирование...

class Tied { private $dbm; private $dbmFile;

function _construct($file = false)

$this->dbmFile = $file(-

$this->dbm = dba_popen($this->dbmFile, "c", "ndbm"); function _destructO

dba_close($this->dbm);

function _get($name)

$data = dba_fetch($name, $this->dbm); if($data) { print $data;

return unserialize ($data) ,-else {

print "$name не найдено\п"; return false;

}

}

function _set($name, $value)

dba_replace($name, serialize($value), $this->dbm)•

}

Теперь можно получить объект типа ассоциативного массива, который позволяет хранить постоянные данные так, что, если использовать его как

<?

$а = new Tied("/tmp/tied.dbm"); if (!$a->counter) { $a->counter = 1;

}

else {

$a->counter++;

print "Эта страница посещалась ".$a->counter." Раз(а).\п";

то каждая операция доступа будет увеличивать его на единицу:

> РНР 19.РНР

Эта страница посещалась 1 раз(а).

> РНР 19.РНР

Эта страница посещалась 2 раз(а).

Переопределение также можно применять для управления доступом к свойствам. Как известно, переменные в РНР могут иметь любой тип, а изменить тип переменной (массив, строка, число и т.д.) можно без проблем. Однако иногда требуется сохранить




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006