我在使用php的会话时遇到了一些麻烦。我想我已经找到了原因,似乎当我设置会话变量时,它会复制整个SimpleXMLElement对象,而不仅仅是存储在所述对象中的值。我怎样才能确保将值存储在会话变量中?
以下是一些代码段:
$records = $listingNums->RecordCount->Returned[0];
$_SESSION['test'] = 'green';
$_SESSION['saleRecords'] = $records;
for($x=0;$x<count($listingNums->ListingNumber);$x++){
$_SESSION['saleNumbers'][$x] = $listingNums->ListingNumber[$x];
}
因此,如果我在设置之后将会话变量转储出来,它们似乎没问题。但是当我回到页面时,它们没有被设置。 test = green我设置试图查看是否可以使任何会话变量工作,并且确实保存到下一页。
我的会话保存路径是可写的,它会写出以下内容:
测试| S:5: “绿色”; saleRecords | O:16: “的SimpleXMLElement”:1:{I 0,S:1: “6”;} saleNumbers |一个:6:{I:0; ○:16: “的SimpleXMLElement”:1:{I:0; S:7: “2736176”;} I:1,O:16: “的SimpleXMLElement”:1:{I:0; S:7: “2733979” ;} I:2,O:16: “的SimpleXMLElement”:1:{I:0; S:7: “2733522”;} I:3,O:16: “的SimpleXMLElement”:1:{I:0; S :7: “2715680”;} I:4,O:16: “的SimpleXMLElement”:1:{I:0; S:7: “2708179”;} I:5,O:16: “的SimpleXMLElement”:1: {I:0; S:7: “2673739”;}}
当我回到页面时,会记住会话并设置变量,但除了测试之外,它们显示为空。
我希望有足够的信息,我真的很感激任何帮助!
谢谢!
恭
答案 0 :(得分:1)
未经测试的答案,但您可以将其转换为xml,或将其转换为字符串
作为字符串(以及将记录转换为数组):
$records = $listingNums->RecordCount->Returned[0];
$_SESSION['test'] = 'green';
$_SESSION['saleRecords'] = (array)$records;
for($x=0;$x<count($listingNums->ListingNumber);$x++){
$_SESSION['saleNumbers'][$x] = (string)$listingNums->ListingNumber[$x];
}
作为XML:
$records = $listingNums->RecordCount->Returned[0];
$_SESSION['test'] = 'green';
$_SESSION['saleRecords'] = (array)$records;
for($x=0;$x<count($listingNums->ListingNumber);$x++){
$_SESSION['saleNumbers'][$x] = $listingNums->ListingNumber[$x]->asXML();
}