您好,欢迎访问一九零五行业门户网

对象传递那种方式好?该如何处理

对象传递那种方式好?
我原来学java的,因为要用php做一个东西。mvc:模式下。代码:
userinfoaction.class.php   :
public   function   index($userid){
        $userdao   =   new   userdao();
        $uservo=   $userdao-> finduserbyid($userid);
跳转到:   userinfo.php
}
如果是java就很简单了:   pagecontext.setattribute( 'uservo ',uservo);
pagecontext.forward(userinfo.jsp);
userinfo.jsp页面只要:uservo   uservo   =   request.getattribute( 'uservo ');   就能拿到那个对象了。
***************************************************************************************
看了一下:php页面间对象传递。大概有这么几种。
1.对象序列化   $uservostr   =   serialize($uservo);     $_session[ 'uservo ']=   $uservostr;   (session鸭梨过大)
2.通过url传递   $url   =   userinfo.php?uservo=urlencode($uservostr);   header(   location:   $url   );   (可能超长)
3.还有通过表单form隐藏域传递的vo对象。(这个估计速度不行,而且多此一举)。
大量数据:如listusers应该怎么传递给另一个页面。如果采用session,那么session是否要传递后手动清空。在jsp中,session一般不会用来做大量数据的页面传递。
------解决方案--------------------
探讨
……
2.通过url传递 $url = userinfo.php?uservo=urlencode($uservostr); header( location: $url ); (可能超长)
……
------解决方案--------------------
你关心的问题是普遍的,php 并不生存于真空。所以他同样需要对当时所有可能的情况作出应对
不然他也就无法生存下去。虽然应对方式可能不尽人意
在你描述的情况下,php 提供的首选方案是 session,对应
 pagecontext.setattribute( 'uservo ',uservo); 
的是
session_start();
$_session['uservo'] = $uservo;
对应
uservo uservo = request.getattribute( 'uservo ');
的是
include '类 userdao 的定义文件名';
session_start();
$uservo = $_session['uservo'] ;
而 serialize、unserialize 只是作为备选方案
其它类似信息

推荐信息