<?php
$person = new class($controller) {
public $age = 15, $height = 72, $weight = 200;
public function __set($name, $value) {
if (!property_exists($controller)) {
throw new Exception("No such property: $name");
}
$this->{$name} = $value;
}
public function __get($name) {
if (!property_exists($controller)) {
throw new Exception("No such property: $name");
}
return $this->{$name};
}
};
var_dump($person);
var_dump($person->age);
$person->badProp = 5;
Warning: Undefined variable $controller in /in/KZ6jE on line 3
object(class@anonymous)#1 (3) {
["age"]=>
int(15)
["height"]=>
int(72)
["weight"]=>
int(200)
}
int(15)
Warning: Undefined variable $controller in /in/KZ6jE on line 6
Fatal error: Uncaught ArgumentCountError: property_exists() expects exactly 2 arguments, 1 given in /in/KZ6jE:6
Stack trace:
#0 /in/KZ6jE(6): property_exists(NULL)
#1 /in/KZ6jE(22): class@anonymous->__set('badProp', 5)
#2 {main}
thrown in /in/KZ6jE on line 6
Process exited with code 255.
Notice: Undefined variable: controller in /in/KZ6jE on line 3
object(class@anonymous)#1 (3) {
["age"]=>
int(15)
["height"]=>
int(72)
["weight"]=>
int(200)
}
int(15)
Notice: Undefined variable: controller in /in/KZ6jE on line 6
Warning: property_exists() expects exactly 2 parameters, 1 given in /in/KZ6jE on line 6
Fatal error: Uncaught Exception: No such property: badProp in /in/KZ6jE:7
Stack trace:
#0 /in/KZ6jE(22): class@anonymous->__set('badProp', 5)
#1 {main}
thrown in /in/KZ6jE on line 7
Process exited with code 255.
Output for 7.3.32 - 7.3.33
object(class@anonymous)#1 (3) {
["age"]=>
int(15)
["height"]=>
int(72)
["weight"]=>
int(200)
}
int(15)
Warning: property_exists() expects exactly 2 parameters, 1 given in /in/KZ6jE on line 6
Fatal error: Uncaught Exception: No such property: badProp in /in/KZ6jE:7
Stack trace:
#0 /in/KZ6jE(22): class@anonymous->__set('badProp', 5)
#1 {main}
thrown in /in/KZ6jE on line 7
Process exited with code 255.
Output for 7.0.0 - 7.0.33
object(class@anonymous)#1 (3) {
["age"]=>
int(15)
["height"]=>
int(72)
["weight"]=>
int(200)
}
int(15)
Notice: Undefined variable: controller in /in/KZ6jE on line 6
Warning: property_exists() expects exactly 2 parameters, 1 given in /in/KZ6jE on line 6
Fatal error: Uncaught Exception: No such property: badProp in /in/KZ6jE:7
Stack trace:
#0 /in/KZ6jE(22): class@anonymous->__set('badProp', 5)
#1 {main}
thrown in /in/KZ6jE on line 7
Process exited with code 255.