In PHP 4, there was no concept of object properity protection. i.e.
any chunk of code could modify a member variable's value.
<?php
class foo {
/* Only accessable within an instance of foo */
private $foovar;
/* Accessable from foo, or a subclass of foo */
protected $foofamilyvar;
/* Accessable from anywhere */
public $a_var;
public function mypublicfunc() { /* ... */ }
private function myprivatefunc() { /* ... */ }
protected function myprotectedfunc() { /* ... */ }
}
class bar extends foo {
public function modify() {
$this->foofamilyvar = true;
}
}
$var_one = new foo();
$var_two = new bar();
$var_one->a_var = 10; /* acceptable, public variable */
$var_one->foofamilyvar = true; /* error, protected var */
$var_one->foovar = "Hi!" /* error, private var */
$var_two->modify(); /* modifies the variable */
?>