Re: private_write/protected_write properties

From: Date: Wed, 18 Jul 2007 20:41:32 +0000
Subject: Re: private_write/protected_write properties
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-31067@lists.php.net to get a copy of this message
I'll probably be lynched for bringing up this subject again, since it caused a long discussion a year ago. Anyway I look in the archives and there was never a real conclusion made, so I'm bringing it up again. This time for a feature I personally would like to see in PHP 6. Very often I want to be able to be get a property publicly, while only being able to set it within the class. You can solve this by using a getPropery() method or by using __get($property), but this feels more like a workaround. I think the private/public state of properties is becoming more important now that using public frameworks is becoming main stream. Therefor I believe this would be a good addition. Unfortunately, there are a few caveats to this when used with objects, resources, and arrays. The simplest way to explain would be to show some sample code:
class foo { public $bar = 'baz'; } class myclass { protected_write $f; private_write $fp; function __construct() {
    $this->f = new foo;
    $this->fp = fopen('somefile.txt', 'r');
} } $m = new myclass; $F = $myclass->f; $F->bar = 'blong'; $FP = $myclass->fp; fclose($FP); The explanation of arrays is a bit more involved, but it's got some gotchas too...

« previous php.internals (#31067) next »