Skip to content

Instantly share code, notes, and snippets.

@jamband
Last active September 28, 2015 18:38
Yii Framework: get/set methods and others.
<?php
class A
{
private $test;
public function __get($name)
{
$getter = 'get' . $name;
if (method_exists($this, $getter)) {
return $this->$getter();
}
}
public function __set($name, $value)
{
$setter = 'set' . $name;
if (method_exists($this, $setter)) {
return $this->$setter($value);
}
}
public function __isset($name)
{
$getter = 'get' . $name;
if (method_exists($this, $getter)) {
return $this->$getter() !== null;
}
}
public function __unset($name)
{
$setter = 'set' . $name;
if (method_exists($this, $setter)) {
return $this->$setter(null);
}
}
public function getTest()
{
return $this->test;
}
public function setTest($value)
{
$this->test = $value;
}
}
$a = new A();
var_dump(isset($a->test)); // false
var_dump($a->test); // null
$a->test = 'test';
var_dump(isset($a->test)); // true
var_dump($a->test); // test
unset($a->test);
var_dump(isset($a->test)); // false
var_dump($a->test); // null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment