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(5550d)
Last-modified: 2009-09-13 (日) 12:42:38 (5904d)