php
简介编辑本段
PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。
PHP最初是由勒多夫在1995年开始开发的;现在PHP的标准由the PHP Group维护。PHP以PHP License作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不兼容。
基本信息编辑本段
软件名称 PHP
编程范型 面向对象、指令式编程
设计者 拉斯姆斯·勒多夫
实现者 The PHP Group
发行时间 1995年
稳定版本 8.0.7(2021年6月3日)
类型系统 动态、弱类型
操作系统 跨平台
许可证 PHP许可证
编程范型 面向对象、指令式编程
设计者 拉斯姆斯·勒多夫
实现者 The PHP Group
发行时间 1995年
稳定版本 8.0.7(2021年6月3日)
类型系统 动态、弱类型
操作系统 跨平台
许可证 PHP许可证
开发历史编辑本段
PHP原本的简称为Personal Home Page,是拉斯姆斯·勒多夫为了要维护个人网页,而用C语言开发的一些CGI工具程序集,来取代原先使用的Perl程序。最初这些工具程序用来显示拉斯姆斯·勒多夫的个人履历,以及统计网页流量。他将这些程序和一些窗体解释器集成起来,称为PHP/FI。PHP/FI可以和数据库连接,产生简单的动态网页程序。拉斯姆斯·勒多夫在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 5包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个访问数据库的延伸库)、以及许多性能上的增强。目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。
2008年时,PHP 5成为了PHP唯一维护中的稳定版本。
PHP 7的首个版本于2015年12月3日开发完成,包含了大量性能上的改进,同时也带来了一些新特性,最值得注意的是返回值类型声明、标量类型声明(可用于参数及返回值)。
在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 5包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个访问数据库的延伸库)、以及许多性能上的增强。目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。
2008年时,PHP 5成为了PHP唯一维护中的稳定版本。
PHP 7的首个版本于2015年12月3日开发完成,包含了大量性能上的改进,同时也带来了一些新特性,最值得注意的是返回值类型声明、标量类型声明(可用于参数及返回值)。
语言特点编辑本段
开源免费
由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。另外,PHP 运行环境的使用也是免费的。
快捷高效
PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。PHP可以与很多主流的数据库建立起连接,如MySQL、ODBC、Oracle等,PHP是利用编译的不同函数与这些数据库建立起连接的,PHPLIB就是常用的为一般事务提供的基库。
面向过程和面向对象并用,在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言做不到的。
面向过程和面向对象并用,在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言做不到的。
拓展性强
PHP是目前最流行的编程语言,这毋庸置疑。它驱动全球超过2亿多个网站,有全球超过81.7%的公共网站在服务器端采用PHP。PHP常用的数据结构都内置了,使用起来方便简单,也一点都不复杂,表达能力相当灵活。
PHP在不断兼容着类似closures和命名空间等技术,同时兼顾性能和当下流行的框架。版本是7之后,一直在提供更高性能的应用。
PHP 语言在补丁漏洞升级过程中,核心部分植入简单易行,且速度快。
PHP 语言在数据库应用过程中,可以从数据库调取各类数据,执行效率高。
PHP在不断兼容着类似closures和命名空间等技术,同时兼顾性能和当下流行的框架。版本是7之后,一直在提供更高性能的应用。
PHP 语言在补丁漏洞升级过程中,核心部分植入简单易行,且速度快。
PHP 语言在数据库应用过程中,可以从数据库调取各类数据,执行效率高。
吉祥物编辑本段
PHP项目的吉祥物名叫“elePHPant”,PHP的logo在一头蓝象的里面,由文森·庞蒂尔(Vincent Pontier)在1998年设计。其设计概念是从侧面看 PHP 像只大象。当elePHPant被制作成毛绒玩具时,有时颜色会有不同。
应用编辑本段
PHP是一个应用范围很广的语言,特别是在网络程序开发方面。一般来说PHP大多在服务端运行,透过运行PHP的代码来产生网页提供浏览器读取,此外也可以用来开发命令行脚本程序和用户端的GUI应用程序。PHP可以在许多的不同种的服务器、操作系统、平台上运行,也可以和许多数据库系统结合。使用PHP不需要任何费用,官方组织PHP Group提供了完整的程序源代码,允许用户修改、编译、扩展来使用。
安全编辑本段
据National Vulnerability Database数据显示,与PHP有关的数据库攻击比例为:20% 2004, 28% 2005, 43% 2006, 36% 2007, 35% 2008 and 32% 2009[32]。其中很多的漏洞都可以通过远程操作完成,如:黑客可以通过网络连接攻击服务器,达到盗取或毁坏数据,发送垃圾邮件或进行分布式拒绝服务攻击。但是随着更多的关注,PHP也变得越来越安全了。
官网被黑事件编辑本段
2010年12月17日,PHP代码“贡献者名单”中被加入“Wolegequ Gelivable”字样(中文含义“我勒个去 给力”),约半小时后被删除。2011年3月19日,PHP官方发布声明指出,黑客可能是通过wiki.php.net作为入口攻击了代码系统。并且,官方已经检查过自版本5.3.5以来发布的代码,并没有发现恶意内容。但官方同时表示,尚未完全掌握黑客发动本次攻击的具体细节。
类型编辑本段
PHP主要有八种基本数据类型,其中包括:
资源 (resource)
- 四种变量类型
整数型(integer)
浮点数型(float)
布尔型(boolean)
字符串(string)
浮点数型(float)
布尔型(boolean)
字符串(string)
- 两种复合类型
数组(array)
对象(object)
对象(object)
- 两种特殊类型
资源 (resource)
变量编辑本段
PHP中,变量以“$”后接变量名称来表示。 变量名称区分大小写。
有效的变量名称以字母或下划线开头,后接任意数目的字母、数字或下划线,PHP也支持使用多字节文字作为变量名。[40]
面向对象
PHP从PHP 3开始有了基本的面向对象(Object oriented)的特性,但直到PHP 5将面向对象部分重新改写之后,PHP的面向对象功能才比较完善。现在PHP可以说是一个有完整面向对象功能的语言。
有效的变量名称以字母或下划线开头,后接任意数目的字母、数字或下划线,PHP也支持使用多字节文字作为变量名。[40]
面向对象
PHP从PHP 3开始有了基本的面向对象(Object oriented)的特性,但直到PHP 5将面向对象部分重新改写之后,PHP的面向对象功能才比较完善。现在PHP可以说是一个有完整面向对象功能的语言。
PHP相关资源编辑本段
PHP框架
使用PHP框架可以更快更简单的部署项目并提高开发效率,但学习使用这些框架需要付出额外的学习成本。
最流行的PHP框架包括:Symfony, Zend Framework, Laravel、Phalcon、CodeIgniter、Yii、ThinkPHP等等。
除了内置的函数之外,PHP也提供了很多扩展库(extension),像是各种数据库连接函数、资料压缩函数、图形处理等等。有些延伸库需要从PECL(PHP Extension Community Library)获取。
最流行的PHP框架包括:Symfony, Zend Framework, Laravel、Phalcon、CodeIgniter、Yii、ThinkPHP等等。
库
内置多样化的函数是PHP主要的特点之一,这些开放代码的函数提供了各种不同的功能,例如文件处理、FTP、字符串处理、等等。这些函数的使用方法和C语言相近(例如printf),这也是PHP广为流行的原因之一。除了内置的函数之外,PHP也提供了很多扩展库(extension),像是各种数据库连接函数、资料压缩函数、图形处理等等。有些延伸库需要从PECL(PHP Extension Community Library)获取。
源代码编码和加速
PHP源代码是可以直接读取的,即使放到服务器上运行也是一样。虽然让PHP多了弹性,但相对的会造成安全危机和性能下降的问题。
透过PHP编码器,可以保护PHP的源代码不被读取(对商业软件来说特别有需求),也可以提升运行的性能。有许多公司或团体开发PHP的编码器,将PHP程序编译成字节码(byte code),再透过服务器上安装对应的程序来运行PHP脚本。
除了透过编码器加速之外,PHP还可以透过动态的缓存机制来提升速度,加速工具有商业版的,例如Zend Platform,也有开放源代码的加速软件如eAccelerator、APC、XCache。
透过PHP编码器,可以保护PHP的源代码不被读取(对商业软件来说特别有需求),也可以提升运行的性能。有许多公司或团体开发PHP的编码器,将PHP程序编译成字节码(byte code),再透过服务器上安装对应的程序来运行PHP脚本。
除了透过编码器加速之外,PHP还可以透过动态的缓存机制来提升速度,加速工具有商业版的,例如Zend Platform,也有开放源代码的加速软件如eAccelerator、APC、XCache。
php包管理器
Composer是php社区用来管理依赖关系的工具,一般在php项目中通过composer.json声明依赖的外部php库,然后就可以使用Composer管理包依赖。PHP编译器编辑本段
PHP一直被当作解释器使用。PHP编译器则将PHP从解释器中分离,为加快运行和改善与以其他编程语言编写部分的互通性,例如Phalanger将PHP编译成通用中间语言和Hiphop for PHP把PHP源代码编译成C++等。Facebook因应其网站大量的用户,集成了HPHPc、HPHPi、HPHPd以及HHVM这四种脚本引擎,开发出HipHop for PHP,以加强网站性能。
附件列表
词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。