PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPオブジェクトのシリアル化


はじめに

バイトストリーム形式のオブジェクトの文字列表現は、 serialze()によって取得されます。 PHPで機能します。オブジェクトのすべてのプロパティ変数は文字列に含まれ、メソッドは保存されません。この文字列は任意のファイルに保存できます。

バイトストリームからオブジェクトを取得するために、unserialize()関数があります。 unserialize()を呼び出す前に、対応するクラスの定義が利用可能である必要があります 機能。

まず、次のクラスのオブジェクトをシリアル化し、文字列をファイルに保存しましょう。

<?php
class test1{
   private $name;
   function __construct($arg){
      $this->name=$arg;
   }
}
$obj1=new test1("Kiran");
$str=serialize($obj1);
$fd=fopen("obj.txt","w");
fwrite($fd, $str);
fclose($fd);
?>

現在のフォルダに、obj.txtが作成されます。シリアル化を解除するには、次のコードで、指定されたファイルから読み取られたバイトストリームからオブジェクトを再構築します

<?php
class test1{
   private $name;
   function __construct($arg){
      $this->name=$arg;
   }
   function getname(){
      return $this->name;
   }
}
$filename="obj.txt";
$fd=fopen("obj.txt","r");
$str=fread($fd, filesize($filename));
$obj=unserialize($str);
echo "name: ' . $obj->getname();
?>

出力

上記のコードは、出力に続いて名前を返すようになりました

name: Kiran

  1. PHPのget_class()関数

    get_class()関数は、オブジェクトのクラスの名前を取得します。オブジェクトがオブジェクトでない場合はFALSEを返します。クラス内でオブジェクトが除外されると、そのクラスの名前が返されます。 構文 get_class(object) パラメータ オブジェクト −テストされたオブジェクト。キャス内でこのパラメーターを回避できます。 戻る get_class()関数は、オブジェクトのクラスの名前を返します。オブジェクトがオブジェクトでない場合はFALSEを返します。クラス内でオブジェクトが除外されると、そのクラスの名前が返されます。 例 以下は例です- <?php cl

  2. PHPのget_object_vars()関数

    get_object_var()関数は、指定されたオブジェクトのプロパティを取得します。指定されたオブジェクトに対して定義されたオブジェクトプロパティの連想配列を返します。 構文 get_object_vars(object) パラメータ オブジェクト −オブジェクトインスタンス。 戻る get_object_var()関数は、指定されたオブジェクトに対して定義されたオブジェクトプロパティの連想配列を返します。プロパティに値が割り当てられていない場合は、NULL値で返されます。 例 以下は例です- <?php    class Point2D { &nb