我有一个查询,如何将对象从php文件 A 传输到php文件 B ? 但我知道使用session的解决方案。但我需要知道的是,他们的任何其他方法是在会话之外的php文件之间传输对象吗?
答案 0 :(得分:1)
保存在文件中,保存在数据库中,保存在共享内存中,保存在缓存服务器中。
答案 1 :(得分:1)
一种方法是将序列化对象 - 或其数据 - 存储到数据库中,使用会话ID作为再次“找到”它的键。
使用缓存文件也可以这样做。
更快的方法是使用像memcache这样的共享内存缓存。这些解决方案始终需要服务器端管理和root访问权限才能设置。
答案 2 :(得分:1)
APC可能是最简单的方法:
示例:
// new object
$object = new ClassName('Kieran', 123);
// Store it
apc_store('object', $object);
另一个脚本
$obj = apc_fetch('object');
print_r($obj->method());
答案 3 :(得分:1)
你可以使用这个方法: 序列化()和取消序列化()
fileA.php:
<?php
require_once 'employee.class.php';
$employee=new employee($id,$firstname,$lastname);
$serializeemployee=serialize($employee);
session_start();
$_SESSION['employee']=$serializeemployee;
header('location: ./fileB.php');
?>
fileB.php:
<?php
session_start();
if(isset($_SESSION['employee']) && $_SESSION['employee'])
{
require_once 'employee.class.php';
$employee=unserialize($_SESSION['employee']);
echo $employee->getFirstname();
?>
答案 4 :(得分:0)
序列化对象并存储在以下之一(Database,Temp,Memcache)。
根据对象的组成,我会看一下实现__sleep
和__wake
魔术方法,以确保能够正确传输对象。
答案 5 :(得分:0)
使用cURL你可以转移任何东西......试试这个......
http://php.net/manual/en/book.curl.php
答案 6 :(得分:0)
最简单的方法(除了使用会话)可能是将其保存为APC(备用PHP缓存)用户变量,因为您可能已经安装了APC用于操作码缓存目的。这样你就有了两个扩展名。
APC将值存储在内存中,就像Memcached一样,但是更容易安装,因为它不是一个额外的守护进程,而是一个PHP扩展。