PHP 8.4: Asymmetric visibility for class properties
class C {
public private(set) int $a = 1;
public function __construct() {
unset($this->a);
}
}
class D extends C {
public function __unset($name) {
unset($this->a);
}
}
class C extends B {
public mixed $x {
set {
$f = parent::$x::set(...);
$f($value);
}
}
}
class B {
public $x {
set($value = null) {
$field = $value;
}
}
}