<?php
$foo = new class {
public int $bar;
public function __construct() {
unset($this->bar); # will result in the invocation of magic
}
public function __get($name) {
return "oh dear!";
}
};
var_dump($foo->bar);
Fatal error: Uncaught TypeError: Value of type string returned from class@anonymous::__get() must be compatible with unset property class@anonymous::$bar of type int in /in/Lq5dA:15
Stack trace:
#0 {main}
thrown in /in/Lq5dA on line 15
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Fatal error: Uncaught TypeError: Value of type string returned from class@anonymous::__get() must be compatible with unset property class@anonymous::$bar of type int in /in/Lq5dA:15
Stack trace:
#0 {main}
thrown in /in/Lq5dA on line 15
Process exited with code 255.
Fatal error: Uncaught TypeError: Cannot assign string to property class@anonymous::$bar of type int in /in/Lq5dA:15
Stack trace:
#0 {main}
thrown in /in/Lq5dA on line 15
Process exited with code 255.
Output for 7.4.0 - 7.4.33
Fatal error: Uncaught TypeError: Typed property class@anonymous::$bar must be int, string used in /in/Lq5dA:15
Stack trace:
#0 {main}
thrown in /in/Lq5dA on line 15
Process exited with code 255.
Parse error: syntax error, unexpected 'int' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in /in/Lq5dA on line 4
Process exited with code 255.
Output for 7.0.0 - 7.0.33
Parse error: syntax error, unexpected 'int' (T_STRING), expecting variable (T_VARIABLE) in /in/Lq5dA on line 4
Process exited with code 255.