@ 2014-10-20T08:52:13Z <?php
class Struct {
function __construct() {
foreach (func_get_args() as $name) {
$this->$name = null;
}
}
function __invoke(... $values) {
$obj = clone $this;
foreach ($obj as $index => $name) {
$obj->$index = array_shift($values);
}
return $obj;
}
}
$Coord = new Struct('x', 'y', 'z');
$Coord->z = 0;
$c1 = $Coord(12, 45, -34);
print_r($c1);
$c2 = $Coord(100, -100);
print_r($c2);
$Person = new Struct('firstname', 'lastname');
$p1 = $Person('William', 'Wallace');
print_r($p1);
$p2 = $Person('Peter', 'Griffin');
print_r($p2);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.2.0 - 8.2.17 , 8.3.0 - 8.3.4 Deprecated: Creation of dynamic property Struct::$x is deprecated in /in/Fi8fQ on line 7
Deprecated: Creation of dynamic property Struct::$y is deprecated in /in/Fi8fQ on line 7
Deprecated: Creation of dynamic property Struct::$z is deprecated in /in/Fi8fQ on line 7
Struct Object
(
[x] => 12
[y] => 45
[z] => -34
)
Struct Object
(
[x] => 100
[y] => -100
[z] =>
)
Deprecated: Creation of dynamic property Struct::$firstname is deprecated in /in/Fi8fQ on line 7
Deprecated: Creation of dynamic property Struct::$lastname is deprecated in /in/Fi8fQ on line 7
Struct Object
(
[firstname] => William
[lastname] => Wallace
)
Struct Object
(
[firstname] => Peter
[lastname] => Griffin
)
Output for 5.6.8 - 5.6.28 , 7.1.0 - 7.1.20 , 7.2.6 - 7.2.33 , 7.3.16 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.27 Struct Object
(
[x] => 12
[y] => 45
[z] => -34
)
Struct Object
(
[x] => 100
[y] => -100
[z] =>
)
Struct Object
(
[firstname] => William
[lastname] => Wallace
)
Struct Object
(
[firstname] => Peter
[lastname] => Griffin
)
Output for 7.0.0 - 7.0.20 Struct Object
(
[x] => 45
[y] => -34
[z] =>
)
Struct Object
(
[x] => -100
[y] =>
[z] =>
)
Struct Object
(
[firstname] => Wallace
[lastname] =>
)
Struct Object
(
[firstname] => Griffin
[lastname] =>
)
Output for 5.4.0 - 5.4.45 , 5.5.24 - 5.5.35 Parse error: syntax error, unexpected '.', expecting '&' or variable (T_VARIABLE) in /in/Fi8fQ on line 11
Process exited with code 255 . Output for 5.1.0 - 5.1.6 , 5.2.0 - 5.2.17 , 5.3.0 - 5.3.29 Parse error: syntax error, unexpected '.', expecting '&' or T_VARIABLE in /in/Fi8fQ on line 11
Process exited with code 255 . Output for 5.0.0 - 5.0.5 Parse error: parse error, unexpected '.', expecting '&' or T_VARIABLE in /in/Fi8fQ on line 11
Process exited with code 255 . Output for 4.4.2 - 4.4.9 Parse error: syntax error, unexpected '.', expecting ')' in /in/Fi8fQ on line 11
Process exited with code 255 . Output for 4.3.0 - 4.3.1 , 4.3.5 - 4.3.11 , 4.4.0 - 4.4.1 Parse error: parse error, unexpected '.', expecting ')' in /in/Fi8fQ on line 11
Process exited with code 255 . Output for 4.3.2 - 4.3.4 Parse error: parse error, expecting `')'' in /in/Fi8fQ on line 11
Process exited with code 255 . preferences:dark mode live preview
224.3 ms | 401 KiB | 306 Q