I really like the concept of immutability, but I think that it should be applicable at instance level rather than declaration.
I would also prefer another keyword than immutable. Final does not make the properties immutable, it makes the class not extensible. On Nov 16, 2015 10:24, "Daniel Persson" <[email protected]> wrote: > Any differance from the final keyword? > > http://php.net/manual/en/language.oop5.final.php > > On Mon, Nov 16, 2015 at 10:15 AM, Chris Riley <[email protected]> wrote: > > > Hi, > > > > There has been a lot of interest recently (eg psr-7) in immutable data. > I'm > > considering putting an RFC together to add language support for > immutables: > > > > immutable class Foo { > > public $bar; > > public function __construct($bar) { > > $this->bar = $bar; > > } > > } > > > > Immutable on a class declaration makes all (maybe only public?) > properties > > of the class immutable after construct; assigning to a property would > > result in a Fatal error. > > > > class Foo { > > public $bar; > > immutable public $baz; > > } > > > > Immutable on a property makes the property immutable once it takes on a > > none null value. Attempts to modify the property after this results in a > > fatal error. > > > > Any thoughts? > > ~C > > >
