在ASP.NET中如果我声明一个变量(或对象)静态(或者如果我创建一个单例)我可以让它在多个用户的多个会话中持续存在(它在一个 服务器 范围)所以我不必在每次请求时初始化它。
PHP中有这样的功能吗?谢谢
在ASP.NET中如果我声明一个变量(或对象)静态(或者如果我创建一个单例)我可以让它在多个用户的多个会话中持续存在(它在一个 服务器 范围)所以我不必在每次请求时初始化它。
PHP中有这样的功能吗?谢谢
您可以设置APC并使用apc_store和apc_fetch函数。
这在PHP中不存在,但是,您可以序列化数据并将其放在硬盘驱动器上的文件中或/ dev / shm /中。您也可以使用memcache。
如果将数据放在/ dev / shm /中或使用memcache数据 会消失 重启。
您可以使用PHP扩展(用C编写)来实现。
但是如果你想用PHP编写它,没有。最好的替代方法是在每个请求结束时将变量写入文件(file_put_contents()),并在每个请求开始时打开它(file_get_contents())。
这种替代方案不适用于大批量网站,因为这些流程将同时进行读/写操作,而全世界将全部使用BLAAA-WOOO-EEE-WOHHH-BOOOM。
可悲的是没有。 PHP的 static
关键字仅限于当前脚本实例。
要在同一会话的脚本实例之间保留数据,您可以使用 会话处理 特征。
要在会话中保留数据,您必须使用类似的内容 内存缓存但是,这需要在服务器端进行额外的设置工作。
您可以在会话中存储对象的序列化副本
班级考试{ private static $ instance; 公共财产; private __construct(){} public getInstace(){ 如果(!自:: $实例){ self :: $ instance = new test; } return self :: $ instance; } } $ p = test-> getInstance(); $ p-> property =“你好”; $ _SESSION [“p”] = $ p;
下一页
$ p = $ _SESSION [“p”]; echo $ p-> property; // “你好”