<?php
$payload = [
'tenantFee' => 100,
'securityDeposit' => 200,
// 'adminFee' => 400,
];
class Command {
private array $payload;
public function __construct(array $payload)
{
$this->payload = $payload;
foreach ($payload as $field=>$value) {
$this->$field = $value;
}
}
public function __call($name, $arguments){
if (isset($this->$name)) {
return $this->$name;
}
else if (substr($name, 0, 3 ) === "has") {
$fieldname = lcfirst(substr($name, 3, strlen($name)));
if (isset($this->payload[$fieldname])) {
return true;
} else return false;
}
else {
throw new \Exception('something wrong');
}
}
}
$command = new Command($payload);
var_dump(
$command->hasAdminFee(),
$command->tenantFee(),
$command->hasSecurityDeposit()
);