PHP总结

时间:2023-03-09 07:56:25
PHP总结
1.PHP的简介:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)
是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点
PHP的大版本主要分三支:PHP4/PHP5/PHP6 
其中,PHP4由于太古老、对OO支持不力已基本被淘汰,请无视PHP4。 
PHP6由于基本没有生产线上的应用,还基本只是一款概念产品,很多功能已在PHP5.3.3上实现,
所以也不详述,请无视PHP6。 
PHP5的版本主要分四支:PHP5.2之前的版本、PHP5.2.X、PHP5.3和日前的PHP5.4。 

2.PHP5各版本之间的特点:
PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束
PHP5.2:JSON 支持
PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,Phar
PHP5.4:Short Open Tag, 数组简写形式,Traits, 内置 Web 服务器,细节修改
PHP5.5:yield, list() 用于 foreach, 细节修改
PHP5.6: 常量增强,可变函数参数,命名空间增强

3.PHP5版本中Zend的支持
PHP 5.2.x 或者是 5.2 之前支持 Zend Optimizer 
PHP 5.3.x 支持zend guard loader  不支持 Zend Optimizer

3.PHP中VC6与VC9的区别
如果你在apache1或者apache2下使用PHP,你应该选择VC6的版本
如果你在IIS下使用PHP应该选择VC9的版本,VC6的版本使用visual studio6编译,
VC9使用Visual Studio 2008编译,并且改进了性能和稳定性。
VC9版本的PHP需要你安装Microsoft 2008 C++ Runtime。不要在apache下使用VC9的版本。

4.PHP中TS和NTS的区别
TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。
NTS即None-Thread Safe,即非线程安全 一般以fast cgi方式运行的时候选择这个版本,具有更好的性能

5.FastCGi和ISAPI的选择

ISAPI运行最好是线程安全的模式下 
如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程。
一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了

FastCGI用(NTS,非线程安全)的版本能够更好的提高效率
为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。
FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。
同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,
又利用上了CGI进程模式不存在线程安全问题的优势。
因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;
而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,
用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。


随机推荐

  1. iOS 程序打包,安装流程

    一.发布测试,是指将你的程序给   * 你的测试人员,因为程序总归是要测试的   * 你的客户,在正式发布之前,客户肯定是要先看(验收)的 在他们的iOS设备(iphone,ipod, ipad)安装 ...

  2. Web性能压力测试工具之Apache AB 详解

    下载安装地址: http://httpd.apache.org/download.cgi yum install httpd-tools http://www.apachelounge.com/dow ...

  3. 关于Servlet中的HttpServletRequest和HttpServletResponse

    1.HttpServletRequest 方    法 说    明 getAttributeNames() 返回当前请求的所有属性的名字集合 getAttribute(String name) 返回 ...

  4. 什么是条带化(striping) ?(转载)

    条带(strip)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法.简单的说,条带是一种将多个磁盘驱动器合并为一个卷的方法. 许多情况下,这是通过硬件控制器来完成的. ...

  5. archlinux log 文件查看

    # pacman -S gnome-system-log gnome-logsextra/gnome-logs 3.12.1-1 (gnome-extra) A log viewer for the ...

  6. 获取Repeater控件中的每一项数据

    var items = rptList.Items;//获取Repeater控件的所有项 foreach (RepeaterItem item in items)//遍历每一项内容 {   var t ...

  7. Grunt 之通配符

    在描述源码路径的时候,经常有一些特殊的奇怪的要求.Grunt 通过内建的 node-glob 和 minimatch 库提供了文件名的扩展机制. 常见的通配符如下: * 匹配除了 / 之外的任意数量的 ...

  8. MFC学习 消息钩子使用

    HANDLE h_KeyBoard; //当前进程的钩子, 另外WH_KEYBOARD_LL, 与WH_MOUSE_LL参数时, 是获取的底层的消息, 相当于获取的全局的 g_hKeyBoard = ...

  9. 如何在CODESOFT中自定义删除文档备料

    CODESOFT 2015是先进的标签设计与集成软件.在使用CODESOFT制作条码标签时,为方便省时,我们可以事先创建自己的文档模板,保存它们以供将来使用.接下来,小编就讲讲CODESOFT 201 ...

  10. sc delete 服务器名提示“指定的服务已经标记为删除”

    症状:停止服务后,右键无法点击“启动”,打开命令输入SC删除服务后提示如标题描述 原因:进程还在 解决方案:打开任务管理器,进程,找到你的已停止服务名,右键,结束进程,再操作即可删除服务