0

我正在开发一个网络应用程序。
到目前为止,后端是 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 中,当您在同一个类中并将一个对象传递给同一类的另一个方法时,该对象是按引用传递的(或者更准确地说,引用是按值传递的)。

但是,如上例所示,如果我将“sessionObj”对象从 facade.php 传递到另一个文件中的另一个类(案例)的实例,似乎不可能通过引用传递对象。

我的假设正确吗?

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

4

1 回答 1

1

Cases类的process方法的定义应该是

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

参数前面的“&”表示它是通过引用传递的

于 2013-01-22T16:32:24.873 回答