- var_dump: documentation ( source)
- print_r: documentation ( source)
<?php
class Struct {
function __construct() {
foreach (func_get_args() as $name) {
$this->$name = null;
}
}
function __invoke(... $values) {
$obj = clone $this;
foreach ($this as $index => $name) {
var_dump([$index, $name]);
if ( isset($values[$index]) ) {
$obj->$name = $values[$index];
}
}
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);