PHP在$ _SESSION中存储对象

时间:2013-11-18 10:08:14

标签: php session object

我是PHP中的新用户,我正在尝试保存$_SESSION中的对象。我实际上已经阅读了this帖子,但我需要存储一些内容。

我使用serialize($myObject)将其放入$_SESSION但是当我使用unserialize()时,我收到以下消息:警告:unserialize() expects parameter 1 to be string, object given in...好奇的是我的本地机器与PHP 5.4它的工作原理。在安装了PHP 5.2的主机上,它不起作用。我调用start_session()并在调用unserialize之前实例化new MyObject() ....

然而ißm有点困惑。在一些帖子中我读到PHP自己序列化和反序列化对象,所以我不需要调用它。其他帖子说我必须打电话。

我该如何解决这个问题?

编辑: 我仍然对PHP 5.2和5.4的不同行为感到困惑。以下代码打印出不同的结果:

$inner = '';
if (isset($_GET['inner'])){
var_dump(1);
    $inner = $_GET['inner'];
} else if (isset($_GET['lang']) === true && isset($_SESSION['inner'])){
    $inner = $_SESSION['inner'];
var_dump(2);
} else {
    unset($_SESSION['inner']);
var_dump(3);
}
var_dump($inner);

if ($inner == 'editpwd'){
    $_SESSION['inner'] = 'editpwd';

} else if ($inner == 'browseparks'){
    $_SESSION['inner'] = 'browseparks';

} else if ($inner == 'browsetricks'){
    $_SESSION['inner'] = 'browsetricks';

}

通过执行它,在两种情况下执行相同的if-branch,但'inner'的值不同。

0 个答案:

没有答案