查看类的相关信息:PHP函数,非反射API
// 基类
class Product{
}
// 继承基类的类
class Gift extends Product {
}
// 操作类,查看对应的类的信息
class ShopCar{
protected $product;
public function __construct(Product $product)
{
$this->product=$product;
}
// 获取对应 对象 的 类
public function showClass(){
print get_class($this->product)."\n";
}
// instanceof 能根据继承树往上找,而 get_class 则不能,这里就是为了说明这个问题
public function getFamily(){
print ($this->product instanceof Product)?"True":"Flase";
}
// 获取对应类的方法
public function getMethod(){
print_r(get_class_methods($this));
}
private function f1(){
}
protected function f2(){
}
const NUM=10;
static protected $num=10;
static private $pwd=10;
// 查看对应类的属性,注意,不接受对象作为传入参数。
// 而且该方法无法查看常量
public function getVars(){
print_r(get_class_vars("ShopCar"));
}
}
$shopCar=new ShopCar(new Gift());
$shopCar->showClass();
$shopCar->getFamily();
$shopCar->getMethod();
$shopCar->getVars();
简单来说就是几个函数的使用:
- get_class
- instanceof
- get_class_methods
- get_class_vars
- get_parent_class
- is_subclass_of
- cass_implements