php没有实现快捷的 后台常驻的信息?
2012-03-30 12:51
155 查看
【也许有经验的PHP程序员最感到痛苦的地方是PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。在PHP中,所有的变量都是页面级的,无论是全局变量,还是类的静态成员,都会在页面执行完毕后被清空】
【在PHP中,如果需要在页面之间共享数据,需要手动将变量保存到预定义的全局变量$GLOBALS或$_SESSION中。PHP会将这些变量保存在某个文件中,以便下次执行页面时读取。但是,这种方式存在着极大的限制,除了效率的低下外,它还无法保存引用外部资源的变量,例如文件、Socket、数据库连接等,而正是这些资源最需要被缓存】
【即使是最简单的Singleton模式也无法在PHP中被应用。虽然可以使用PHP写出Singleton的代码,但是由于PHP中没有真正全局的static变量,所以每次页面被执行时,都会重新建立新的对象,这样也就完全失去了Singleton的意义。】
好不容易下决心选学php,居然遇到这样的缺漏
作为很多应用考验的php,很不应该啊:
既然是应用,就需要很多后台常驻的信息需要高效地被存取(asp的session是构建web应用最常用的)
设计php的人,这点需求都想不到?比如:
现在游戏厅的3个房间有人在玩了,第4个人刷新页面,应该也能看到3个房间有人了
当然,可能与php最初是cgi模式有关,每次解释完一个页面,解释器就退出了,自然无法实现后台常驻的信息。
但是,现在都有fastcgi、isapi,解释器可以常驻后台了,实现后台常驻的信息也就不难了。
作为应用这么多的语言、fastcgi出来这么久,还没实现后台常驻的信息,就很不应该了
当然,可以同样文件、数据库、memcache系统来实现内台常驻的信息,但是间接了,环节多了,效率自然也打折扣了
当然,像asp解释器的session,因为是在解释器进程的内存里,多进程、多服务器共享session反而困难了,往往反而不得不借助于数据库了
很多优秀的语言总是差那么一点点,如mssql的T-SQL,居然只有top n没有skip m!最近的sql2012据说才开始支持类似skip m的功能。sql2005开始有row_number()能达到类似的效果,但是性能略低。sql2000的分页,就只能靠多次top的倒腾来实现!
【在PHP中,如果需要在页面之间共享数据,需要手动将变量保存到预定义的全局变量$GLOBALS或$_SESSION中。PHP会将这些变量保存在某个文件中,以便下次执行页面时读取。但是,这种方式存在着极大的限制,除了效率的低下外,它还无法保存引用外部资源的变量,例如文件、Socket、数据库连接等,而正是这些资源最需要被缓存】
【即使是最简单的Singleton模式也无法在PHP中被应用。虽然可以使用PHP写出Singleton的代码,但是由于PHP中没有真正全局的static变量,所以每次页面被执行时,都会重新建立新的对象,这样也就完全失去了Singleton的意义。】
好不容易下决心选学php,居然遇到这样的缺漏
作为很多应用考验的php,很不应该啊:
既然是应用,就需要很多后台常驻的信息需要高效地被存取(asp的session是构建web应用最常用的)
设计php的人,这点需求都想不到?比如:
现在游戏厅的3个房间有人在玩了,第4个人刷新页面,应该也能看到3个房间有人了
当然,可能与php最初是cgi模式有关,每次解释完一个页面,解释器就退出了,自然无法实现后台常驻的信息。
但是,现在都有fastcgi、isapi,解释器可以常驻后台了,实现后台常驻的信息也就不难了。
作为应用这么多的语言、fastcgi出来这么久,还没实现后台常驻的信息,就很不应该了
当然,可以同样文件、数据库、memcache系统来实现内台常驻的信息,但是间接了,环节多了,效率自然也打折扣了
当然,像asp解释器的session,因为是在解释器进程的内存里,多进程、多服务器共享session反而困难了,往往反而不得不借助于数据库了
很多优秀的语言总是差那么一点点,如mssql的T-SQL,居然只有top n没有skip m!最近的sql2012据说才开始支持类似skip m的功能。sql2005开始有row_number()能达到类似的效果,但是性能略低。sql2000的分页,就只能靠多次top的倒腾来实现!
相关文章推荐
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
- 用PHP实现守护进程任务后台运行与多线程(php-resque使用说明)
- 最近在一个外网的网站,困扰了我多天的循环和大家分享下,也做为我以后工作之用.第一种(信息作用循环.实现方式后台时钟在前台循环滚动(左右)显示).
- php获取apk/ipa里面的信息(已经实现纪录一下)
- ASP和PHP实现生成网站快捷方式并下载到桌面的方法
- 获取PHP相关信息的PHP函数实现
- PHP实现显示照片exif信息的方法
- 使用Xcode真机调试时没有任何问题,但是当打包成ipa文件安装时,有接口访问不到后台信息
- php怎么实现在登陆界面登陆之后在主页面显示你的登陆个人i信息?
- php实现登录后如果超过10分钟没有任何操作,如果再操作需重新登录
- php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
- PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
- 使用Pushlet实现后台信息推送(一)
- php获取服务器信息的实现代码
- php中怎么实现后台执行?
- PHP实现手机号、邮箱在网上注册信息查阅
- AngularJS+RestfulAPI+BasicAuth+Python/PHP/Node.JS来实现一个最简单的新闻管理后台
- php实现简单的用户注册,登录,修改个人信息接口