- var_dump: documentation ( source)
- preg_match: documentation ( source)
- strtolower: documentation ( source)
<?php
class Test
{
protected $id;
public function __set($key, $value)
{
if (isset($this->$key))
$this->$key = $value;
// throw new Exception() could be added here
}
public function __get($key)
{
return isset($this->$key) ? $this->$key : null;
}
public function __call($name, $arguments)
{
$matches = array();
$pattern = '/^set([A-Za-z0-9]+)/';
if (preg_match($pattern, $name, $matches)) {
//var_dump($arguments, $matches);
$method = strtolower($mwtches[1]);
$this->$method($arguments[0]);
}
}
}
$test = new Test;
$test->setId(25);
var_dump($test);