PHP PHP 动态网页脚本语言

未知
2024-03-11 10:33:06
0
授权协议 MIT  
开发语言 C/C++
操作系统 跨平台  
软件类型 开源软件
开源组织
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2024-03-10

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 中你可以使用多种预测类型

如何在 PHP 中检测 n+1 查询

n+1查询问题是软件开发中常见的性能问题。 N+1 查询会导致许多不必要的数据库调用。这可能会导致您的应用程序以蜗牛般的速度运行,尤其是随着数据的增长。因此,您...

为什么 Laravel 这么优秀

Laravel 一直是我心中最优雅的后端框架,为了向更多的人解释为什么 Laravel 这么优雅?框架本身都做了什么操作?比起其他框架的优势在哪里等?我准备从一...

PHP老矣,尚能饭否?

近日 GitHut 最新公布的数据显示,开发者在 GitHub 提交的 PR 中,所使用语言为 PHP 的数量逐年下降。

我们都应该学习PHP

PHP这三个字母官方的含义是这样的——PHP: Hypertext Preprocessor。但我想对PHP这三个字母做一个新的解读:Pragmatic、Hum...

代码

0

相关软件

Swoole - PHP 协程框架
Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Soc...
2024-05-14 10:32:52
vscode - Visual Studio Code 代码编辑器
VSCode 是一款由微软开发的免费开源的跨平台文本编辑器,支持 Windows,macO...
2024-03-10 12:11:42
Electron - 跨平台桌面应用开发工具
Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台的桌面...
2024-03-10 11:43:01
Java - 编程语言
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Ja...
2024-03-10 11:38:52
Go - Google 的编程语言
Go 是 Google 开发的一种编译型、并发型,并具有垃圾回收功能的编程语言
2024-03-10 10:49:50
Laravel - PHP 开发框架
Laravel 是一个具有表现力、优雅语法的 Web 应用程序框架。Web 框架提供了创建...
2024-03-10 10:25:01
Python - 面向对象编程语言
Python (发音:[ 'paiθ(ə) n; (US) 'paiθ...
2024-03-10 10:15:22
PHP - 动态网页脚本语言 PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种...
Electron - 跨平台桌面应用开发工具 Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序。...
Node.js - 服务器端的 JavaScript 运行环境 Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境,允许开发人员在浏览...
Nginx - 高性能 Web 服务器 Nginx(发音同 engine x)是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件(...
Zed - 高性能、多人代码编辑器 Zed 是一款高性能、多人代码编辑器,由 Atom 和 Tree-sitter 的创建者开发。它也是...
npm - Node.js 包管理工具 npm 是 Node.js 的包管理工具,用来安装各种 Node.js 的扩展。
Python - 面向对象编程语言 Python (发音:[ 'paiθ(ə) n; (US) 'paiθɔn ] ...
Firefox - 火狐浏览器 Mozilla Firefox 俗称火狐,是由 Mozilla 基金会与开源团体共同开发的网页浏览器...
ChatGPT - OpenAI发布的AI聊天机器人模型 ChatGPT(全名:Chat Generative Pre-trained Transformer...
React - Web 和原生用户界面的库 React 是一个用于构建用户界面的 JavaScript 库。
PHP - 动态网页脚本语言 PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种...

最新文章

大模型的Tokens是什么 大模型中的"tokens"指的是模型处理的输入文本中的单词、标点符号或其他文本单...
Linux 6.9 内核正式版发布:支持 AMD P-State 首选核心、优化... Linux 6.9 内核正式版发布:支持 AMD P-State 首选核心、优化酷睿 Ultra 处...
微信小程序学习笔记,知识点全面概括总结 微信小程序学习笔记,知识点全面概括总结
如何在 PHP 中检测 n+1 查询 n+1查询问题是软件开发中常见的性能问题。 N+1 查询会导致许多不必要的数据库调用。这可能会导致您...
Git 里面合并分支的三种方式 Git 里面合并分支的三种方式 merge rebase squash.
国内Ai大模型排行榜 国内AI大模型的发展呈现出多样化的态势,各种类型的大模型纷纷涌现,包括改头换面的、剑走偏锋的、借壳炒...
整理一批字体下载网站,免费可商用 整理一批字体下载网站,免费可商用。
AI 的关键是语料 我的观点是,不管怎么调整模型的架构、功能、参数,作用是有限的,真正决定性的因素是训练模型的语料。不需...
Python 3.13 获首个 Beta 版更新:改进解释器 / 编译器性能、正... 据 Python 博客,目前 Python 3.13 首个 Beta 版本已经发布,这是四大测试版本...
2024年,程序员面对编程语言焦虑,应当何去何从 不知道从何时开始,php 已死这一概念逐渐成为大家茶余饭后的娱乐话题。在某脉,某乎和公众号上面看到太...