用php实现像JSP,ASP里Application那样的全局变量
用php实现像JSP,ASP里Application那样的全局变量
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:

复制代码 代码如下:

<?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=newApplication();

$a->setValue("t1","arui");

$a->setValue("arr",$arr);

$u=$a->getValue();

---------------------------------------------+*/

classApplication

{

/**保存共享变量的文件*/

var$save_file='Application/Application';

/**共享变量的名称*/

var$application=null;

/**序列化之后的数据*/

var$app_data='';

/**是否已经做过setValue的操作防止频繁写文件操作*/

var$__writed=false;

/**

*构造函数

*/

functionApplication()

{

$this->application=array();

}

/**

*设置全局变量

*@paramstring$var_name要加入到全局变量的变量名

*@paramstring$var_value变量的值

*/

functionsetValue($var_name,$var_value)

{

if(!is_string($var_name)||empty($var_name))

returnfalse;

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();

}

/**

*取得保存在全局变量里的值

*@returnarray

*/

functiongetValue()

{

if(!is_file($this->save_file))

$this->__writeToFile();

return@unserialize(@file_get_contents($this->save_file));

}

/**

*写序列化后的数据到文件

*@scopeprivate

*/

function__writeToFile()

{

$fp=@fopen($this->save_file,"w");

@fwrite($fp,$this->app_data);

@fclose($fp);

}

}

?>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类