PHP(“PHP: Hypertext Preprocessor
”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发。
PHP 最早由 Rasmus Lerdorf 在 1995 年发明,现在 PHP 实质上的标准由 PHP Group 和开放源代码社群维护。PHP 以 PHP License 作为许可协议,不过因为这个协议限制了 PHP 名称的使用,所以和开放源代码许可协议 GPL 不相容。
PHP 目前被广泛的应用,特别是在服务器端的网页程式开发。一般来说 PHP 大多执行在网页服务器上,透过执行 PHP 程式码来产生使用者浏览的网页。PHP 几乎可以在任何的操作系统上执行,而且使用 PHP 完全是免费的。根据 2007 年 4 月的统计资料,PHP 已经被安装在超过 2000 万个网站和 100 万台服务器上。
PHP 原本的简称为 Personal Home Page,是 Rasmus Lerdorf 为了要维护个人网页,而用 c 语言开发的一些 CGI 工具程式集,来取代原先使用的 Perl 程式。最初这些工具程式用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。他将这些程式和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程式。Rasmus Lerdorf 在 1995 年 6 月 8 日将 PHP/FI 公开释出,希望可以透过社群来加速程式开发与寻找错误。这个释出的版本命名为 PHP 2,已经有今日 PHP 的一些雏型,像是类似 Perl 的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。程式语法上也类似 Perl,有较多的限制,不过更简单、更有弹性。
在 1997 年,任职于 Technion IIT 公司的两个以色列程式设计师:Zeev Suraski 和 Andi Gutmans,重写了 PHP 的剖析器,成为 PHP 3 的基础,而 PHP 也在这个时候改称为 PHP: Hypertext Preprocessor.。 经过几个月测试,开发团队在 1997 年 11 月释出了 PHP/FI 2,随后就开始 PHP 3 的开放测试,最后在 1998 年 6 月正式释出 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 释出后开始改写 PHP 的核心,这个在 1999 年释出的剖析器称为 Zend Engine,他们也在以色列的 Ramat Gan 成立了 Zend Technologies 来管理 PHP 的开发。
在 2000 年 5 月 22 日,以 Zend Engine 1.0 为基础的 PHP 4 正式释出,2004 年 7 月 13 日则释出了 PHP 5,PHP 5 则使用了第二代的 Zend Engine。PHP 包含了许多新特色,像是强化的面向对象功能、引入 PDO(PHP Data Objects,一个存取数据库的延伸函式库)、以及许多效能上的增强。目前 PHP 4 已经不会继续更新,以鼓励用户转移到 PHP 5。
2008 年 PHP 5 成为了 PHP 唯一的有在开发的 PHP 版本。将来的 PHP 5.3 将会加入 Late static binding 和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除 register_globals、magic quotes 和 Safe mode 的功能。
PHP 7 于 2015 年 12 月 3 号正式发布,PHP7 最让人关注的无非是其性能,据官方说明 PHP 7 的性能是 PHP 5.6 的两倍。
php5 与 php7 之间的区别:
1、性能提升:PHP7 比 PHP5.0 性能提升了两倍。
2、以前的许多致命错误,现在改成抛出异常。
3、PHP 7.0 比 PHP5.0 移除了一些老的不在支持的 SAPI(服务器端应用编程端口)和扩展。
4、PHP 7.0 比 PHP5.0 新增了空接合操作符。
5、PHP 7.0 比 PHP5.0 新增加了结合比较运算符。
6、PHP 7.0 比 PHP5.0 新增加了函数的返回类型声明。
7、PHP 7.0 比 PHP5.0 新增加了标量类型声明。
8、PHP 7.0 比 PHP5.0 新增加匿名类。
9、错误处理和 64 位支持
如果您了解错误和异常之间的区别,那么您就会知道在 PHP 5 中处理致命错误非常不容易。PHP7 简化了流程,因为它已用可以轻松处理的异常替换了几个主要错误。这是通过引入新的引擎异常对象实现的。
您可能已经知道,PHP 5 不支持 64 位整数或大文件,但 PHP 7 中的情况已发生变化。PHP7 具有 64 位支持,因此您也可以使用本机 64 位整数作为大文件,因此,您可以在 64 位系统体系结构上完美运行应用程序。
10、声明返回类型
在 PHP 5 中,程序员无法定义函数或方法的返回类型。在现实生活中,这是一个巨大的缺点,因为程序员无法防止意外的返回类型并在其他情况下生成异常。
幸运的是,PHP 7 允许程序员根据期望的返回值声明函数的返回类型。这肯定会使代码健壮和准确。有四种不同的返回类型可用 - bool,int,string 和 float。
为什么 PHP7 比 PHP5 性能提升了?
1、变量存储字节减小,减少内存占用,提升变量操作速度
2、改善数组结构,数组元素和 hash 映射表被分配在同一块内存里,降低了内存占用、提升了 cpu 缓存命中率
3、改进了函数的调用机制,通过优化参数传递的环节,减少了一些指令,提高执行效率
PHP8 于 2020 年 11 月 26 日正式发布,除重大更改外,PHP 8 还带来了一些不错的新功能,比如说 JIT 编译器,联合类型,属性,以及更多。
比较受人关注的特性有:
1、JIT 编译器
JIT 的新特性,则是将 PHP 代码转化为传统的机器码,而并非通过 zend 虚拟机来运行,这大大增加了运行速度。但是缺点是向下不兼容。
2、注解
PHP8 之前 PHP 实现注解可以通过 php-parser 来实现,但现在可以直接通过 Reflection 来获取。
3、类中的成员变量
在 PHP8 之前,我们一般会这样定义一个类,首先要设置成员变量,然后在构造或者某一个方法为它赋值。
4、命名参数
方法传参需要默认值时会更灵活
5、联合类型
在 PHP8 中你可以使用多种预测类型
创建第一个 Laravel 项目时,您需要确保先安装 PHP 和 Composer。但是,如果您尚未安装这些,对于新手来说可能会有点繁琐。不用担心,Larave...
n+1查询问题是软件开发中常见的性能问题。 N+1 查询会导致许多不必要的数据库调用。这可能会导致您的应用程序以蜗牛般的速度运行,尤其是随着数据的增长。因此,您...
近日 GitHut 最新公布的数据显示,开发者在 GitHub 提交的 PR 中,所使用语言为 PHP 的数量逐年下降。
PHP这三个字母官方的含义是这样的——PHP: Hypertext Preprocessor。但我想对PHP这三个字母做一个新的解读:Pragmatic、Hum...