对象传递那种方式好?
我原来学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 只是作为备选方案