・・・タイトル通りです。
そのままだとオブジェクトのclassが「__PHP_Incomplete_Class」になってしまい、使えない。セッションから取り出し時に、そのオブジェクトのclassがまだ読み込まれていないかららしい。
NG:
<?php
:
$hoge= new Hoge();
$_SESSION['hogeObj'] = $hoge;
?>
↓
<?php
:
$hoge = $_SESSION['hogeObj'];
$id = $hoge->getId(); //正しいメソッドにもかかわらずエラーになる。$hogeが__PHP_Incomplete_Class とみなされているため。
?>
OK:
<?php
:
$hoge= new Hoge();
$_SESSION['hoge'] = serialize($hoge);
?>
↓
<?php
:
$hoge = unserialize($_SESSION['hoge']);
$id = $hoge->getId(); //OK。Hogeクラスとして認識されている
?>