- var_dump: documentation ( source)
- array_shift: documentation ( source)
- explode: documentation ( source)
<?php
class TestClass
{
public $prop2 = "test";
}
class TestClass2
{
public $prop;
public function __construct()
{
$this->prop = new TestClass();
}
}
function deepProperty($obj,$property,$value = null)
{
$curObj = &$obj;
$properties = explode('.',$property);
while(count($properties) > 1)
$curObj = &$curObj->{array_shift($properties)};
if ($value != null)
$curObj->{$properties[0]} = $value;
var_dump($curObj,$properties);
return $curObj->{$properties[0]};
}
$object = new TestClass2();
echo deepProperty($object,"prop.prop2");