hi,
On 16/11/2015 10:33, Lorenzo Fontana wrote:
I really like the concept of immutability, but I think that it should be
applicable at instance level rather than declaration.
I'm not sure about that, most PHP code assume mutable objects, I doubt
much existing classes would be usable as immutable
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" <mailto.wo...@gmail.com> 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 <t.carn...@gmail.com> 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
I don't think it's enough to make only public properties immutable. this
would lead to a lot of mutable "immutable" classes, eg:
immutable class my_class {
private $my_prop;
__construct($my_prop) {
$this->my_prop = $my_prop;
}
public function getMyProp() {
return $this->my_prop;
}
public function setMyProp($my_prop) {
return $this->my_prop = $my_prop;
}
}
how is this class immutable ?
also, what about __isset/__set ? Would it be allowed to assign non
immutable types to properties of an immutable class ?
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
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php