- var_dump: documentation ( source)
<?php
interface CounterInterface {
public function getCount();
public function increment();
}
class Counter implements CounterInterface {
private $counter = 0;
public function getCount() { return $this->counter; }
public function increment() { $this->counter = $this->getCount() + 1; }
}
class CounterOffsetByOne extends Counter {
public function getCount() { return parent::getCount() + 1; }
}
class DecoratedCounterOffsetByOne implements CounterInterface {
private $baseCounter;
public function __construct() { $this->baseCounter = new Counter; }
public function getCount() { return $this->baseCounter->getCount() + 1; }
public function increment() { $this->baseCounter->increment(); }
}
$counter = new CounterOffsetByOne;
$counter->increment();
$counter->increment();
var_dump($counter->getCount());
$counter = new DecoratedCounterOffsetByOne;
$counter->increment();
$counter->increment();
var_dump($counter->getCount());