php中如何在A类的方法里面 实例化B类,并调用B类的方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中如何在A类的方法里面 实例化B类,并调用B类的方法?相关的知识,希望对你有一定的参考价值。

class logincontroller


function main()


$controller = $_GET['controller'];
$userName = $_POST['userName'];
$passWord = $_POST['passWord'];

if($userName != '')

require('../Model/db_class.php');
$login_class = new db_cs;
$login_class->a(); //报错的地方



这段代码运行到实例化后访问a方法的时候报错,这个代码是控制器,想先调用db_class数据库操作的基本类,然后处理完毕,之后调用模板, 刚接触MVC的结构项目,理解有限,这个问题最好能给一个解决方案,给一点简单点的注释,谢谢!
还有如果此方法完全是错误的,不具有可行性,望指教一个正确的接受来自表单的控制器,谢谢!

用 call_user_func(array('类名','方法名')); // 具体看手册
你的这个调用方法应该没错,看下是不是引入的文件路径不对,或者方法名不正确
如果是静态方法应该通过 db_cs::a()来调用
参考技术A 我想你用的应该是一个框架。检查一下你的这个控制器类有没有包含(include,require)db_cs这个类。

设计模式笔记5:代理模式

1.1 定义

  为其他对象提供一种代理,以控制这个对象的访问。

  其实就是两个类实现一个接口或抽象类,在A类中实例化B类的对象,那么A类的就能代理B类实现接口的方法。

 

1.2  类图

 

 

  Porxy代理类中声明了RealSubject类的实例,在需要调用他们都实现的方法时,调用RealSubject实例的方法。就实现了对RealSubject的代理。

 

1.3  代码

 View Code

 

调用:

 

 View Code

 

1.4  总结

 

代理模式的4大应用场景:

  1、远程代理,为一个对象在不同地址空间提供局部代表。

  2、虚拟代理,根据需要创建开销很大的对象。浏览器中的图片下载,就是用这个来优化的。

  3、安全代理,控制真实访问对象的权限。

  4、只能引用,调用真实对象是代理可以帮我们做额外的事情,例如记录引用次数,释放对象等。

以上是关于php中如何在A类的方法里面 实例化B类,并调用B类的方法?的主要内容,如果未能解决你的问题,请参考以下文章

php 实例化 问题

如何理解php的依赖注入

php类实例化问题

PHP中的服务容器与依赖注入的思想

PHP中的服务容器与依赖注入的思想

PHP能在类中实例化一个类吗