/**
* 展示反射在get,set上的用法
* 实际是:把对象传入反射类后,调用反射类,获取对象的属性
*/
class person
{
public $name;
public $age;
public function say()
{
echo $this->name . "<br>" . $this->age;
}
public function set($name, $value)
{
echo 'set name to value';
$this->$name = $value;
}
public function get($name)
{
if (!isset($this->$name)) {
echo 'unset name';
$this->$name = 'seting~~~';
}
return $this->$name;
}
}
$stu = new person();
function _getProperties($cur_obj)
{
$reflect = new ReflectionObject($cur_obj);
return $reflect->getProperties();
}
function setProperty($cur_obj, $propertie_name = '', $propertie_value = '')
{
$reflect = new ReflectionObject($cur_obj);
if ($reflect->hasProperty($propertie_name)) {
$cur_obj->$propertie_name = $propertie_value;
}else{
throw new Exception('没有这个属性,请检查名称', 1);
}
}
function getProperty($cur_obj, $propertie_name = '')
{
$reflect = new ReflectionObject($cur_obj);
if ($reflect->hasProperty($propertie_name)) {
echo $cur_obj->$propertie_name;
} else {
throw new Exception('没有这个属性,请检查名称', 1);
}
}
setProperty($stu, 'name', 'my_name from property');
getProperty($stu, 'name1');
使用PHP展示反射在get,set上的用法
最新推荐文章于 2021-08-11 21:19:41 发布