频道栏目
首页 > 资讯 > 设计模式 > 正文

PHP动态实例化一个含有命名空间的类对象的几种方法

16-01-07        来源:[db:作者]  
收藏   我要投稿

php实例化一个类很简单,比如Person类的实例化:

$obj=newPerson();

有时候我们需要动态的实例化一个对象,比如有两个类:Person类和Animal类,我需要根据传来的参数来实例化对象,那么我们可以z这样写个函数:

functionget_obj($obj_name)
{
returnnew$obj_name();
}

如果我们要实例化一个使用了命名空间的类,比如:Person类和Animal类都在namespace Common\Object;下,那怎么做?同样可以写个函数,把命名空间拼接上去即可:

functionget_obj($obj_name)
{
$obj_name='Common\Object\\'.$obj_name;
returnnew$obj_name();
}

当然了,我们也可以使用累的反射获取一个实例,最前面两种情况比较简单,不再说了,把最后一个使用了命名空间的用类的反射写一下

functionget_obj($obj_name)
{
$obj_name='Common\Object\\'.$obj_name;
$class=new\ReflectionClass($obj_name);
return$class->newInstance();
}
相关TAG标签
上一篇:理解PHP中的MVC编程之控制器
下一篇:使用PHP编写基于Web的文件管理系统
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站