今回は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が必要になるということを覚えておかなければならない。