用php实现像JSP,ASP里Application那样的全局变量

复制代码 代码如下:

<?php /**  * 功能:实现像JSP,ASP里Application那样的全局变量  * author: [url]www.itzg.net[/url]  * version: 1.0  * 版权:如许转载请保留版权声明  */ /*+----------------example---------------------- require_once("Application.php"); $arr = array(0=>"Hi",1=>"Yes"); $a = new Application(); $a->setValue("t1","arui"); $a->setValue("arr",$arr); $u = $a->getValue(); ---------------------------------------------+*/ class Application {  /**保存共享变量的文件*/  var $save_file    = 'Application/Application';  /**共享变量的名称*/  var $application  = null;  /**序列化之后的数据*/   var $app_data    = '';   /**是否已经做过setValue的操作 防止频繁写文件操作*/   var $__writed    = false;   /**    * 构造函数    */   function Application()   {    $this->application = array();   }   /**    * 设置全局变量    * @param string $var_name 要加入到全局变量的变量名    * @param string $var_value 变量的值    */   function setValue($var_name,$var_value)   {    if (!is_string($var_name) || empty($var_name))     return false;    if ($this->__writed)    {     $this->application[$var_name] = $var_value;     return;    }    $this->application = $this->getValue();    if (!is_array($this->application))     settype($this->application,"array");    $this->application[$var_name] = $var_value;    $this->__writed = true;       $this->app_data = @serialize($this->application);           $this->__writeToFile();   }  /**   * 取得保存在全局变量里的值   * @return array   */  function getValue()  {      if (!is_file($this->save_file))          $this->__writeToFile();      return @unserialize(@file_get_contents($this->save_file));  }  /**   * 写序列化后的数据到文件   * @scope private   */  function __writeToFile()  {   $fp = @fopen($this->save_file,"w");   @fwrite($fp,$this->app_data);   @fclose($fp);  } } ?>