php 实现反射

定义一个人类 

class  person{
	
	public $name;
	public $gender;
	public function say(){
		//echo $this->name."say".$this->gender;
	}
	public function __set($name,$value){
		$this->name=$value;
	}
	public function __get($name){
		
		if(!isset($name)){
			echo "未设置";
		}else{
			return $this->$name;
		}
	}
}

$student =new person();
$student->name="cat";
$student->gender="male";
$student->say();
$student->age ="12";

通过反射获取php中的类名,方法名

//使用class函数
var_dump(get_object_vars($student));  //返回对象的关联数组
var_dump(get_class_vars(get_class($student)));// 类的属性
var_dump(get_class_methods(get_class($student)));//方法名的数组
echo get_class($student);//类名

php 实现反射_第1张图片

//使用反射API
$reflect = new ReflectionObject($student);
$props = $reflect->getProperties();
foreach($props as $prop){
	print $prop->getName()."</br>";
}
 // 返回对象的所有方法
$m = $reflect->getMethods();
foreach($m as $prop){
	print $prop->getName();
}
var_dump($props);

你可能感兴趣的:(PHP,反射)