SessionElement.object
上传用户:xiao730204
上传日期:2007-01-04
资源大小:141k
文件大小:2k
源码类别:

WEB邮件程序

开发平台:

PHP

  1. <?php
  2. class SessionElement extends BaseObject {
  3.    var $variable_name;
  4.    /*
  5.    --
  6.       DOESNT CARE ABOUT TYPE ANYMORE EXCEPT FOR STORE / RETREIVES
  7.    --
  8.    */
  9.    var $variable_type;
  10.    Function SessionElement( $variable_name, $var_type = 'string' ) {
  11.       $this->BaseObject( 'SessionElement' );
  12.       $this->variable_name = $variable_name;
  13.       $this->variable_type = $var_type;
  14.    }
  15.    Function Freeze() {
  16.       return $this->StoreValue();
  17.    }
  18.    Function Thaw( $data ) {
  19.       return $this->FetchValue( $data );
  20.    }
  21.    Function StoreValue() {
  22.       $var_name = '$' . $this->variable_name;
  23.       $sto_type = 'string';
  24.       $sto_val  = '';
  25.       $code_seg = '';
  26.       $code_seg .= 'global ' .  $var_name . '; ';
  27.       $code_seg .= 'if ( is_object( ' . $var_name . ' ) ) { ';
  28.       $code_seg .= '  $sto_val = serialize( ' . $var_name . ' ); ';
  29.       $code_seg .= '  $sto_type = ' . $var_name . '->Type(); ';
  30.       $code_seg .= '} else if( is_array( ' . $var_name . ' ) ) {';
  31.       $code_seg .= '  $sto_val = serialize( ' . $var_name . ' ); ';
  32.       $code_seg .= '  $sto_type = "array"; ';
  33.       $code_seg .= '} else {';
  34.       $code_seg .= '  $sto_val = ' . $var_name . ' ; ';
  35.       $code_seg .= '  $sto_type = "string"; ';
  36.       $code_seg .= '}';
  37.       eval( $code_seg );
  38.       $this->variable_type = $sto_type;
  39.       return $sto_val;
  40.    }
  41.    Function FetchValue( $value ) {
  42.       $var_name = '$' . $this->variable_name;
  43.       $code_seg = '';
  44.       $code_seg .= 'global ' . $var_name . '; ';
  45.       if ( $this->variable_type == 'string' ) {
  46.          $code_seg   .= $var_name . ' = '' . $value . '';' ;
  47.       } else if ( $this->variable_type == 'array' ) {
  48.          $code_seg   .= $var_name . ' = Array(); ';
  49.          $code_seg   .= $var_name . ' = unserialize( '' . $value . '' ); ';
  50.       } else {
  51.          $code_seg   .= $var_name . ' = new ' . $this->variable_type . '();';
  52.          $code_seg   .= $var_name . ' = unserialize( '' . $value . '' );';
  53.       }
  54.       eval( $code_seg );
  55.    }
  56. }
  57. ?>