我确定这不是您想要的,但我使用 fileread/filewrite 将我的全局变量存储在驱动器上的文件中,可以读取、写入更新值等。这允许您设置许多全局变量作为 int 的,我已经修改了我的全局代码以用作迭代器,按您传递的任何值向上计数或向下计数。
它是我为处理请求而制作的一个简单的快速类:
<?php
class my_global{
protected $name;
protected $value;
static protected $path = './globals/';
public function __construct()
{
if(!is_dir(self::$path))
mkdir(self::$path);
}
public function change($name, $value)
{
$current = $this->get($name);
$this->set($name,$current+$value);
return $current+$value;
}
protected function set($name, $value)
{
$this->name = $name;
$this->value = $value;
$this->write();
}
protected function get($name)
{
if(file_exists(self::$path.$name))
{
$myFile = self::$path.$name;
$fh = fopen($myFile, 'r');
$value = fread($fh, filesize($myFile));
fclose($fh);
}
else
$value = 0;
$this->name = $name;
$this->value = $value;
return $value;
}
protected function write(){
$myFile = self::$path.$this->name;
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $this->value);
fclose($fh);
}
}
$my_global = new my_global();
?>
然后您可以调用 $my_global->change() 方法来增加或减少计数器
<?php
echo $my_global->change('new_global',5).'<br>';
echo $my_global->change('anotherglobal',-2).'<br>';
echo $my_global->change('forme',7).'<br>';
?>
这比任何事情都更值得深思,但可以根据需要进行调整以使其工作。