A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© PHP吴嘉伟 中级黑马   /  2018-2-3 14:52  /  1131 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有些特定场景需要获取到底在这个继承链中,到底哪个子类继承了我这个父类,这个时候我在查阅PHP官方手册中发现
get_called_class(); 这个方法可以子类的完全名称
[PHP] 纯文本查看 复制代码
class Father{
  public function __construct(){
    //获取继承子类的方法
  echo   get_called_class();
  }
}
class Son extends Father{
  public function __construct(){
    parent::__construct();

  }
}
new Son;

这样就能获取到类名 Son
如果附带命名空间
[PHP] 纯文本查看 复制代码
namespace core;
class Father{
  public function __construct(){
    //获取继承子类的方法
  echo   get_called_class();
  }
}
namespace Controller;
class Son extends \core\Father{
  public function __construct(){
    parent::__construct();

  }
}
new \Controller\Son;

这个时候获取到的类名就是Controller\Son
附带了命名空间这个时候我们就可以做更多的操作!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马