Kontakt - Datenschutz
Subversion
<?php
class Model {
private $_values = [];
public function __get($name) {
// $obj->foo§uppercase
if(preg_match('#^([^§]+)§([^§]+)$#', $name, $matches)) {
$name = $matches[1];
$format = $matches[2];
$value = $this->_values[$name];
switch($format) {
case 'lowercase' : return strtolower($value); break;
case 'uppercase' : return strtoupper($value); break;
case 'specialchars': return htmlspecialchars($value, ENT_QUOTES | ENT_HTML5, 'UTF-8'); break;
case 'noquotes' : return htmlspecialchars($value, ENT_NOQUOTES | ENT_HTML5, 'UTF-8'); break;
default:
throw new \Exception("Unknown format '{$format}'.");
break;
}
} else {
return $this->_values[$name];
}
}
public function __set($name, $value) {
$this->_values[$name] = $value;
}
}
$obj = new Model();
$obj->foo = 'aBcDeF " &';
echo 'raw : ', $obj->foo, "\n";
echo 'uppercase : ', $obj->foo§uppercase, "\n";
echo 'lowercase : ', $obj->foo§lowercase, "\n";
echo 'specialchars: ', $obj->foo§specialchars, "\n";
echo 'noquotes : ', $obj->foo§noquotes, "\n";
?>