在 PHP 中,一个页面如何获取另一个页面声明的变量?

2014-11-16 20:39:11 +08:00
 blue7wings
例如,我在A页面声明了变量$a,从A页面跳转到B页面,那么B页面如何获取到这个变量?我一般都是带参数传递过去,或者写入session在B页面再获取,能不能写入内存?然后B页面再从内存中获取并销毁这个变量呢?
PHP小白,求大大们帮帮解答,O(∩_∩)O谢谢。。。
11792 次点击
所在节点    PHP
27 条回复
kchum
2014-11-17 00:35:37 +08:00
Get
最简单了
watsy0007
2014-11-17 00:39:51 +08:00
数据量比较小,访问量小就上session.
不然就考虑外部缓存,redis
Yuansir
2014-11-17 09:31:05 +08:00
共享内存 shm_*
skyworker
2014-11-17 10:15:59 +08:00
@zhs227 RT

PHP和Python/Ruby的运行机制有一个本质区别:PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链接、加载系统类库,创建缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的时候初始化资源,随后的请求就不必再次初始化资源了。

这种机制的差异带来的区别就是:

1、PHP极难出现严重的内存泄露问题,随便你代码写的多烂,反正每个请求一执行完毕,所有资源统统释放光。而Python/Ruby则需要依赖GC来回收内存,因此稍有不慎,还是会出现GC无法释放的内存泄露问题。

2、PHP每次请求都要初始化资源,这个开销非常大。所以尽管PHP解析器本身的运行速度是极快的,但是一旦使用复杂的PHP框架,那么由于需要每次请求的时候初始化整个框架,性能的下降非常厉害,你用一个很复杂的PHP框架的结果就是整体性能被Ruby远远甩开。这也是为什么PHP社区这么多年来,并不怎么倾向于使用框架的原因之一。

3、由于PHP这种每请求初始化资源的机制,也造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这种限制使得PHP始终保持在一个比较简单的web语言上面,而正是这一点才是PHP得以成为互联网第一Web编程语言的原因,因此也未必就不好。
boynanboy
2014-11-17 16:15:28 +08:00
session 缓存 文件 通过url传递
xwsoul
2014-11-18 21:56:26 +08:00
原因, 思路和方案LS各位已经答的很好了...
PHP基本变量使用的思路就是一个请求内处理完成...
基本上比较耗时的操作可能回丢队列或者深度依赖缓存系统...
bystand3r
2014-11-29 22:02:40 +08:00
看你的业务需求,这个变量到底涉不涉及隐私或安全特性,如果没有,那么get必然是最靠谱的方法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/146997

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX