今回はPHPのオブジェクトについて、Aページでインスタンス化したものをBページに引き継がせる方法を紹介する。

オブジェクトはセッション変数に保存することで、別ページでも同じオブジェクトを参照することができるのだが、保存する時に注意が必要でserialize関数を使わないとオブジェクトを参照することができない。

そのため、セッション変数への保存は以下のようにする。

<?php
session_start();

$object = new SampleClass();
$object->setName('hoge');

$_SESSION['object'] = serialize($object);

次に、別ページで保存したオブジェクトを取り出すコードを見てみよう。

<?php
session_start();

$object = unserialize($_SESSION['object']);
echo $object->getName();

// 出力結果
// hoge

4行目がポイントで、serialize関数で保存したオブジェクトをunserialize関数で取り出している。

PHPでオブジェクトをセッション間で共有する場合は、serialize/unserializeが必要になるということを覚えておかなければならない。