If you want to block setting of public properties on your class, implement
the magic setter.

    class Foo {
        private $data = array();

        function __get($name) {
            return $this->data[$name];
        }

        function __set($name, $value) {
            if ($name != 'foo') {
                $this->data[$name] = $value;
            }
        }
    }

    $f = new Foo;
    $f->x = 5;
    echo $f->x;   // "5"
    $f->foo = 'bar';
    echo $f->foo;   // Notice: Undefined index: foo in php shell code on
line 1

Enjoy!
David

Reply via email to