<?php
class Test
{
protected $myName;
public function __set($key, $value)
{
if (property_exists($this, $key))
$this->$key = $value;
return null;
}
public function __get($key)
{
return property_exists($this, $key) ? $this->$key : null;
}
public function __call($name, $arguments)
{
$matches = array();
$pattern = '/^set([A-Za-z0-9]+)/';
if (preg_match($pattern, $name, $matches)) {
return $this->__set($this->getProp($matches[1]), $arguments[0]);
}
$pattern = '/^get([A-Za-z0-9]+)/';
if (preg_match($pattern, $name, $matches)) {
return $this->__get($this->getProp($matches[1]));
}
}
protected function getProp($matches)
{
return strtolower($matches[0]) . substr($matches, 1, strlen($matches)-1);
}
}
$test = new Test;
var_dump($test->getMyName());
$test->setMyName(25);
var_dump($test->getMyName());
preferences:
35.43 ms | 402 KiB | 5 Q