我试图在会话中存储一个整数值,如下所示:
if(!isset($_SESSION['images'])){
if(!isset($_SESSION['user_id'])){
$_SESSION['images'] = array();
array_push($_SESSION['images'], (int)$newFilename );
}
} else {
if(!isset($_SESSION['user_id'])){
array_push($_SESSION['images'], (int)$newFilename);
file_put_contents("upload.txt", (int)$newFilename);
}
}
但相同的代码适用于我的本地主机(php 5.3.13),但不适用于使用 php 5.2.17 的主机(这是我在这里看到的唯一区别)。我知道在 $_SESSION 中存储对象存在一些问题,但我试图在其中存储一个像这样的一维数组:
$newFilename = $images->getLastFileId();
//$newFilename == array['200','201', '202'...n];
当 $_SESSION['images'] 有一个元素时,一切正常,但如果有 >1 个元素,我有一个错误&object(__PHP_Incomplete_Class)#1
,并var_dump($_SESSION)
表明我有一个对象(看起来像 php 试图存储在$newFilename
一个对象中$images
):
array(1) { ["images"]=> &object(__PHP_Incomplete_Class)#1 (9) { ["__PHP_Incomplete_Class_Name"]=> string(15) "ImageCollection" ["imgSize"]=>
string(0) "" ["imgAngle"]=> string(0) "" ["imgUrl"]=> string(0) ""
["imgDir"]=> string(7) "upload/" ["thumbDir"]=> string(9)
"upload/m/" ["imgPreviewDir"]=> string(0) "" ["avatarsWidth"]=> int(50)
["avatarsDir"]=> string(8) "avatars/" } }
同样,此代码在我的本地主机上正常工作。问题可能出在哪里?
更新我解决了问题,但我不太确定是什么导致了这个问题。也许是 php 错误,但我的代码在重命名$_SESSION['images']
为 后开始正常工作$_SESSION['imagesNew']
- 所以 $_SESSION 变量的名称不再与变量 $images 的名称相同。