如何在PHP中实现全局可访问的变量?

The_Autumn_Wind 2011-04-09 09:01:22
具体的意思是就,有一个数据比较大,而且所有的访问都要用到它,我想把它在内存中只拷贝一份,而PHP又不能定义静态类,供所有的访问调用,我现在用thinkphp做项目!请问应该怎么实现?
...全文
159 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangpei2008 2011-04-09
  • 打赏
  • 举报
回复
memcached
seai 2011-04-09
  • 打赏
  • 举报
回复
//1、使用系统内存方式实现

<?php
//a.php
$shm_id = shmop_open(4, "n", 0644, 100);//创建方式打开内存存储区
$a = shmop_write($shm_id,"abc",0);//写入数据
$b = shmop_read($shm_id,0,3);//读取数据
echo $b;
?>

<?php
//b.php
$shm_id = shmop_open(4, "w",0,0);//读写方式打开内存存储区
$b = shmop_read($shm_id,0,3);//读取数据
echo $b;
?>

//2、使用nosql实现

<?php
$s=new memcached('127.0.0.1');
$s->set('mykey','myval');
?>

<?php
$s=new memcached('127.0.0.1');
$v=$s->get('mykey');
?>
乌镇程序员 2011-04-09
  • 打赏
  • 举报
回复
或者把数据文件放到内存盘(ramdisk(Windows)、内存文件系统ramfs(Linux))。。不过。。真的有这个必要吗?磁盘I/O已经到极限了?
乌镇程序员 2011-04-09
  • 打赏
  • 举报
回复
是不是可以把这个数据放到MySQL中,然后启用查询缓存,牺牲一定数量的内存来降低磁盘I/O操作。只是一个想法,没有实际尝试过。
The_Autumn_Wind 2011-04-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 t5500 的回复:]

手册上说:
引用PHP 中没有用户自定义超全局变量的机制。
[/Quote]
那有其它好的办法实现吗?
乌镇程序员 2011-04-09
  • 打赏
  • 举报
回复
手册上说:
[QUOTE]PHP 中没有用户自定义超全局变量的机制。[/QUOTE]
The_Autumn_Wind 2011-04-09
  • 打赏
  • 举报
回复
也不是非常大,就是非常频繁读取同一个数据!
ImN1 2011-04-09
  • 打赏
  • 举报
回复
既然数据很大,为何非要内存调用?外部调用不行么?

张小莱 2011-04-09
  • 打赏
  • 举报
回复

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧