セッションで扱うシリアライズ

概要

セッションにシリアライズのデータを保存して、セッション読み込みページで使用する


サンプル

定義クラス(TestClass02.class)

<?php
class TestClass02{
	public $name;
	public $memo;
 
	function __construct(){
		//echo __METHOD__ . "\n";
	}
 
	function testMethod01($data){
		echo $data . "---\n";
	}
 
	function __destruct(){
		//echo __METHOD__ . "\n";
	}
 
	function __wakeup(){
		echo __METHOD__ . "\n";
	}
	function __sleep(){
		echo __METHOD__ . "\n";
		return array('name', 'memo');
	}
}
 
 

シリアライズ処理

<?php
	// 読み込み
	require_once("TestClass02.class");
	session_start();
?>
 
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>シリアライズテスト前ページ</title>
	</head>
<?php
	// インスタンス生成
	$obj = new TestClass02();
	$obj->name = "hogehoge2";
	$obj->memo = "foo2";
 
	$aaa = $obj->name;
	$bbb = $obj->memo;
 
	// 変数設定
	$_SESSION['s'] = $obj;
?>
	<body>
		<p>セッション開始しました。</p>
		<div>
			name:<?php echo $aaa; ?><br>
			memo:<?php echo $bbb; ?><br>
		</div>
		<br>
		<a href="./sample12b.php">次へ移動</a><br>
	</body>
</html>
 
 

アンシリアライズ処理

<?php
	// 読み込み
	require_once("TestClass02.class");
	session_start();
?>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>シリアライズテスト次ページ</title>
	</head>
<?php
$s = $_SESSION['s'];
?>
	<body>
		<p>セッション継続しました。</p>
		<div>
			name:<?php echo $s->name; ?><br>
			memo:<?php echo $s->memo; ?><br>
			func:<?php echo $s->testMethod01("test"); ?><br>
		</div>
		<br>
	</body>
</html>
 
 

イメージ





最終更新:2012年08月18日 00:24