From f5bb5ed6d5130b4c80d8bbe3bdf7162da0c011b1 Mon Sep 17 00:00:00 2001 From: Alexandre Daubois Date: Wed, 27 Nov 2024 15:30:57 +0100 Subject: [PATCH 1/2] Mention readonly props reset in `__clone()` --- language/oop5/properties.xml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/language/oop5/properties.xml b/language/oop5/properties.xml index 106df043e945..68ff7936b116 100644 --- a/language/oop5/properties.xml +++ b/language/oop5/properties.xml @@ -330,6 +330,36 @@ $test->obj = new stdClass; + + As of PHP 8.3.0, readonly properties can be reinitialized when cloning an object + using the __clone() method. + + Readonly properties and cloning + + prop = null; + } + + public function setProp(string $prop): void { + $this->prop = $prop; + } +} + +$test1 = new Test1; +$test1->setProp('foobar'); + +$test2 = clone $test1; +var_dump($test2->prop); // NULL +?> +]]> + + + From 2d956fa27e8e9e9a184b3af21c2a490f63c6c4bf Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Wed, 27 Nov 2024 18:36:23 +0000 Subject: [PATCH 2/2] Nit --- language/oop5/properties.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/language/oop5/properties.xml b/language/oop5/properties.xml index 68ff7936b116..66a33330977b 100644 --- a/language/oop5/properties.xml +++ b/language/oop5/properties.xml @@ -336,7 +336,7 @@ $test->obj = new stdClass; Readonly properties and cloning -