PHP,当类在不同的文件中时,每个引用将对象从一个对象传递到另一个对象

时间:2013-01-22 16:20:38

标签: php

我正在开发一个Web应用程序 到目前为止,后端是JBoss 6.1 Application Server(Java EE)。

现在,使用相同的前端,PHP中应该有另一个后端 由于我喜欢Java后端的结构,我为php后端设计了一个类似的结构。

对PHP后端的每个请求转到一个条目,它是“facade.php”,它是我的前面 控制器。

前端控制器(facade.php)处理JSON输入和其他东西,然后有一个大的switch语句。每个任务(登录,获取事件对象,......)都会转移到另一个进程类。

“facade.php”的片段:

switch ($procClass) {
  case "lgi":
    require_once("classes/Login.php");
    $login = new Login();
    $resultMap = $login->process($internalObj, $sessionObj);
    break;
  case "cst":
    require_once("classes/Cases.php");
    $cases = new Cases();
    $resultMap = $cases->process($internalObj, $sessionObj);
    break;  
  .
  . 
  .
}

在JBoss Java EE环境中,当我在无状态会话Bean中并且我在本地进行操作时 查看另一个无状态会话Bean(不同的类),对象被移交 参考其他类的方法参考。

现在我知道,在PHP中,当您在同一个类中并且将一个对象传递给同一个类的另一个方法时,该对象将按引用传递(或者更准确地说,引用按值传递)。 / p>

但是,如上例所示,如果我将来自facade.php的“sessionObj”对象传递给另一个类(case)的实例,这个实例位于另一个文件中,似乎无法按每个对象传递参考

我的假设是否正确?

在这种情况下是否存在另一种传递每个引用的方法(当单独文件中的类时,从对象到对象)?

1 个答案:

答案 0 :(得分:1)

案例类的处理方法的定义应该是

function process($internalObj, &$sessionObj) {
     [...]
}

“&”在参数前面标记为passed by reference