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. eclipse对项目整理分类

    1.Eclipse提供了工作集(Working Set)的功能,它可以用来划分这些项目. 在Package Explorer视图的下拉菜单里选择Show->Working Sets,然后还是在它 ...

  2. select into from 和 insert into select 的用法和区别

    select into from 和 insert into select都是用来复制表,两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建.insert ...

  3. Tools之FindBugs

    我们先来看FindBugs.(因为我们的错误通常分为两种,静态错误和动态错误也就是运行时的,而FindBugs是一个Java代码静态错误分析工具.) 1) 安装 Help->SoftWare U ...

  4. Chapter Querying Data

    Chapter Querying Data XF获取数据的三种方法: 其中参数schema,参见 Chapter Schema. 下面列出一个后面将会用到的schema片段,称之为片段A: <U ...

  5. 程序员必备:Oracle日常维护命令

        上一篇讲了Linux的日常维护命令,这篇讲讲Oracle的日常维护命令.工作中需要使用Oracle数据库的童鞋们,相信或多或少都需要对Oracle做一些基本的维护操作,例如导入导出总该有吧?( ...

  6. 数据以Excel形式导出导服务器,再将文件读取到客户端另存 以HSSFWorkbook方式实现

    public void exportExcel(List<P2pInfo> repayXist,HttpServletRequest request,HttpServletResponse ...

  7. 你不知道的JavaScript 二

    词法作用域 上次说到作用域,将其定义为一套规则,这套规则用来管理引擎如何在当前作用 域以及嵌套的子作用域中根据标识符名称进行变量查找. 作用域共有两种主要的工作模型.第一种是最为普遍的,被大多数编程语 ...

  8. 剑指Offer:面试题7——用两个栈实现队列(java实现)

    题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 首先定义两个栈 Stack<Integer> stack1 = new Stack<I ...

  9. Android开发-API指南-进程与线程

    Processes and Threads 英文原文:http://developer.android.com/guide/components/processes-and-threads.html ...

  10. Effective Modern C++翻译(4)-条款3:了解decltype

    条款3 了解decltype decltype是一个有趣的东西,给它一个变量名或是一个表达式,decltype会告诉你这个变量名或是这个表达式的类型,通常,告诉你的结果和你预测的是一样的,但是偶尔的结 ...