I wrote this code to answer some PHP Object Oriented questions during office hours.
function plus($x, $y) { return $x + $y; } class Thing { public $value; private $a; protected $b; function __construct($start=0) { echo("Construct\n"); var_dump($this->value); $this->value = $start; $value = 12345; var_dump($this->value); echo("Done\n"); } public static function add($x, $y) { // Cannot use $this echo("Adding $x $y \n"); return $x + $y; } public function increment($x) { $this->value += $x; echo("New:" . $this->value . "\n"); } public function inc2($x, $y) { $this->increment($x); $this->increment($y); } public function add10() { $this->value = self::add($this->value, 10); $this->value = $this->add($this->value, 10); $this->inc2(); } function __destruct() { echo("AAAAAAAAAAAAAARGH!!\n"); } } $y = plus(3,4); $y = Thing::add(3,4); $z = new Thing(7); $a = new Thing(10); $z->increment(4); $a->increment(5); $y = $z->add(5,6); unset($z); echo("The last line\n");