PHP_オブジェクトのファイル間通信 の変更点 - アールメカブ

アールメカブ


PHP_オブジェクトのファイル間通信 の変更点


[[Programming]]

以下,[[ここ:http://www.res-system.com/weblog/item/432]]からの引用.

セッション機能を使いオブジェクト自身をセッションに格納する,
逆に取り出す.

マニュアルによれば
>
serialize() は、PHPで保存可能な全ての値のバイト ストリーム表現を有する文字列を返します。 unserialize() は、この文字列を使用して元の変数 値を再生することが可能です。オブジェクトを保存するためにシリアル化を行うと、オブジェクトの全ての変数が保存されます。オブジェクトの関 数は保存されません。クラス名だけが保存されます。
<


A.php に一度アクセスし,続いて B.php にアクセスする.
やりとりするクラスを定義しているphpファイル(Test.php)は必ずインクルード

- Test.php

 <?php
 class Test {
   class Test {
 
  var $id;
  var $name;
 
  function setUserid($id) {
    $this->id = $id;
    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;
    }
  }
  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();
 
 ?>