了解PHP

一、了解PHP

​ PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。

二、PHP发展史

1994年,拉斯姆斯·勒多夫(Rasmus Lerdorf)创造了 PHP,事实上这个时候的 PHP 只是用 Perl 语言编写的一系列 CGI 脚本,用于跟踪他在线简历的访问情况,统计他自己网站的访问者。勒多夫把这些 CGI 脚本命名为“Personal Home Page Tools”。这里我们姑且称之为 PHP 1 吧!但这个早期的 PHP Tools 并不是一门语言,只是一些工具,提供基本的变量,并使用嵌入式HTML句法自动处理表单变量。

由于勒多夫写的这个小程序轻巧且简便,吸引了很多人的关注,在1995年,勒多夫发布了 PHP/FI 2.0。这个FI是一个可以做 SQL 查询的东西,2.0是其更新版本。这次发布了一个基本完善的工具包,它不仅可以访问数据库,还能嵌入 HTML 中动态处理数据。新的工具包,吸引了很多的程序开发者,其中包括 Zeev Suraski(泽埃夫·苏拉斯基)和 Andi Gutmans(安迪·古曼兹),他们后来加入到了PHP3的开发当中。

在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans。1998年末,PHP 3 第一个官方正式版发行,其特点是具有更好的执行效果和更清晰的结构。此外,该版本最强大的地方在于它的可扩展性,这点吸引的大量的开发人员加入并提交新的 PHP 扩展模块。

这个全新的语言伴随着一个新的名称的发布,它标志着 PHP 不在仅仅是个人网页的小工具。尽管它还叫 PHP,但其全称叫“PHP: Hypertext Preprocessor”。这种递归的写法,并非 PHP 独创,众所周知,GUN 便是“GUN’s Not UNIX”的缩写。

在 PHP 3 发布不久,Zeev Suraski 及 Andi Gutmans 就开始投入到 PHP 4 的开发当中,主要目标是增强程序运行性能和 PHP 自身的模块性。新的 PHP 核心被称为“Zend”引擎(两名开发者的缩写),由 C 语言编写,相同的 PHP 脚本在新版本中运行,性能提高了近十倍。在千禧年(2000年),PHP 4 正式发布。

主要增加了以下特征:

  • 各种web服务器的支持
  • 丰富的数组操作函数
  • 完整的会话机制
  • 对输出缓存的支持
  • 增加了对类和对象的支持,是 PHP 面向对象的雏形

尽管,PHP 发展势头之猛,但相比较其他语言如 Java 来说,还有很多问题。面向对象的支持不够完善,无法捕获异常(Exception)等,这导致多年以来 PHP 一直被认为是一门面向过程的语言(即使在 PHP 5 发布后)。2004年7月,PHP 5 正式发布,这标志着 PHP 一个新时代的到来。并且往后多年,PHP 一直在 5 这个版本上迭代,是 PHP 历时最长的一个大版本。

它的核心采用的是第二代 Zend 引擎,并引入了对 PECL 模块的支持。PHP 5 最大的特点是引入了面向对象的全部机制。

版本发布日期最终支持相关更新及备注
1.01995-06-08首次使用
2.01996-04-16针对PHP 1.0的改进版,速度更快、体积更小,更容易产生动态网页。
3.01998-06-062000-10-20Zeev Suraski和Andi Gutmans重写了底层
4.02000-05-222001-06-23增加了Zend引擎
4.12001-12-102002-03-12加入了superglobal(超全局的概念,即 G E T 、 _GET、 GET_POST等)
4.22002-04-222002-09-06默认禁用register_globals
4.32002-12-272005-03-31引入了命令行界面CLI用来不用CGI
4.42005-07-112008-08-08修复了一些致命错误
5.02004-07-132005-09-05ZendⅡ引擎
5.12005-11-242006-08-24引入了编译器来提高性能、增加了PDO作为访问数据库的接口
5.22006-11-022011-01-06默认启用过滤器扩展
5.32009-06-302014-08-14支持命名空间;使用XMLReader和XMLWriter增强XML支持;支持SOAP ,延迟静态绑定,跳转标签(有限的goto), 闭包,Native PHP archives。
5.42012-03-012015-09-03支持Trait、简短数组表达式。移除了register_globals, safe_mode, allow_call_time_pass_reference, session_register(), session_unregister(), magic_quotes以及session_is_registered()。加入了内建的Web服务器。增强了性能,减小内存使用量。
5.52013-06-202016-07-10支持generators,用于异常处理的finally ,将OpCache(基于 Zend Optimizer+)加入官方发布中。
5.62014-08-282018-12-31常数标量表达式、可变参数函数、参数拆包、新的求幂运算符、函数和常量的use语句的扩展、新的phpdbg调试器作为SAPI模块,以及其他更小的改进
6.x未发布取消掉的、从未正式发布的PHP版本。
7.02015-12-032018-12-03Zend Engine 3 (性能提升并在Windows上支持 64-bit 整数),统一的变量语法, 基于抽象语法树编译过程。
7.12016-12-012019-12-01void返回值类型,类常量,可见性修饰符
7.22017-11-302020-11-30对象参数和返回类型提示、抽象方法重写等
7.32018-12-062021-12-06PCRE2支持等
7.42019-11-282022-11-28改进OpenSSL、弱引用等
8.02020年 S4或2021年 S12023年 S4或2024年 S1JIT、数组负索引等
三、PHP特点

(一)开源性和免费性

由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。另外,PHP 运行环境的使用也是免费的。

(二)快捷性

PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。

(三)数据库连接的广泛性

PHP可以与很多主流的数据库建立起连接,如MySQL、ODBC、Oracle等,PHP是利用编译的不同函数与这些数据库建立起连接的,PHPLIB就是常用的为一般事务提供的基库。

(四)面向过程和面向对象并用

在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言做不到的。

四、PHP优缺点
优点

(一)流行,容易上手

PHP是目前最流行的编程语言,这毋庸置疑。它驱动全球超过2亿多个网站,有全球超过81.7%的公共网站在服务器端采用PHP。PHP常用的数据结构都内置了,使用起来方便简单,也一点都不复杂,表达能力相当灵活。

(二)开发职位很多

在服务器端的网站编程中PHP会更容易帮助你找到工作。很多互联网相关企业都在使用PHP开发框架,所以可以说市场对PHP的开发程序员的需求还是比较大的。

(三)仍然在不断发展

PHP在不断兼容着类似closures和命名空间等技术,同时兼顾性能和当下流行的框架。版本是7之后,一直在提供更高性能的应用。

(四)可植入性强

PHP 语言在补丁漏洞升级过程中,核心部分植入简单易行,且速度快。

(五)拓展性强

PHP 语言在数据库应用过程中,可以从数据库调取各类数据,执行效率高

缺点

(一)PHP的解释运行机制

在 PHP 中,所有的变量都是页面级的,无论是全局变量, 还是[类的静态成员,都会在页面执行完毕后被清空。

(二)设计缺陷,缺少关注PHP被称作是不透明的语言,因为没有堆栈追踪,各种脆弱的输入。没有一个明确的设计哲学。早期的PHP受到Perl的影响,带有out参数的标准库又是有C语言引入,面向对象的部分又是从 C++Java学来的。

(三)对递归的不良支持

PHP并不擅长递归。它能容忍的递归函数的数量限制和其他语言比起来明显少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值