PHP_オブジェクトのファイル間通信
以下,ここからの引用.
セッション機能を使いオブジェクト自身をセッションに格納する, 逆に取り出す.
マニュアルによれば
serialize() は、PHPで保存可能な全ての値のバイト ストリーム表現を有する文字列を返します。 unserialize() は、この文字列を使用して元の変数 値を再生することが可能です。オブジェクトを保存するためにシリアル化を行うと、オブジェクトの全ての変数が保存されます。オブジェクトの関 数は保存されません。クラス名だけが保存されます。
A.php に一度アクセスし,続いて B.php にアクセスする. やりとりするクラスを定義しているphpファイル(Test.php)は必ずインクルード
- Test.php
<?php class Test { var $id; var $name; function setUserid($id) { $this->id = $id; } function setName($name) { $this->name = $name; } function getUserId() { return $this->id; } function getName() { return $this->name; } } ?>
- A.php
<?php session_start(); require 'Test.php'; //testオブジェクトを生成 $test = new Test(); //testオブジェクトに値をセット $test->setUserId('001'); $test->setName('ABC'); //testオブジェクトをセッションに格納 $_SESSION['test'] = serialize($test); ?>
- B.php
<?php require 'Test.php'; session_start(); //testオブジェクトをセッションから取り出す $test = unserialize($_SESSION['test']); //testオブジェクトの各値を出力 echo "<BR>"; echo $test->getUserId() ; echo "<BR>"; echo $test->getName(); ?>
Link: Programming(5276d)
Last-modified: 2009-09-13 (日) 12:42:38 (5630d)