![](/img/trans.png)
[英]Is possible serialize a PHPmailer object and use it through sessions?
[英]Is there a way to pass an object through sessions and use its functions?
我的理解是,当您序列化一个对象并将其通过会话传递时,例如,从index.php页面传递到securePage.php,SESSION只是传递该对象数据,因此,您不能使用该对象的功能。 唯一的方法是使用已传递的数据在securePage.php上创建一个新对象。...是否可以传递实际对象,然后使用它的功能,而无需在securePage.php上创建一个全新的对象。
例:
$randomObj = new rndObject;
$_SESSION['object'] = serialize($randomObj);
和securePage.php
$whatever = unserialize($_SESSION['object']);
//below code won't work and say something like
//Fatal error: Call to a member function checkAccess() on a non-object in
//securePage.php on line 39
echo $whatever->checkAccess();
某种程度上,要获取已加载到SESSION中的对象,您需要在调用unserialize之前在某处包含类定义,该类定义将按预期运行,但是从技术上讲,它仍将创建一个新实例。
您应该使用__sleep()和__wakeup()魔术方法(这就是它的用途):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.