展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > 详解PHP

详解PHP

PhpStorm macOS版
PhpStorm macOS版

PhpStorm 是 JetBrains 推出的专业 PHP 集成开发环境,可在 Mac 上完成代码编写、智能检查、重构、调试、测试和数据库管理。它支持主流 PHP 框架、Composer、Git、Docker 与远程解释器。

¥890
Mac 2026-10-13
数据库 编程开发 服务器管理
立即下载

PHP是一种服务器端脚本语言,开源免费,语法借鉴C语言并融合Java等特色,支持面向对象与面向过程。1994年诞生,历经多个版本迭代,PHP7和PHP8性能显著提升,尤以PHP7.0较5.6提升2倍。广泛应用于Web开发,占服务器端编程语言78.9%份额,支持跨平台及常驻内存模式。

本文目录

    PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。它的语法学习了C语言,吸纳了Ja va和Perl等多个语言的特色,逐渐发展出自己的风格,并且持续改进——比如Ja va的面向对象编程就被很好地融合了进来。当初创建PHP的主要目标,就是让开发人员能快速写出优质的Web网站。[1][2] 它同时支持面向对象和面向过程的开发,用起来非常灵活。

    软件名称:PHP
    软件平台:Windows、Linux、Unix、macOS等
    上线时间:1995年
    最近更新时间:2021年7月1日
    软件语言:PHP

    发展历程

    PHP是一个拥有众多开发者的开源软件项目,最初是Personal Home Page的缩写,后来正式更名为“PHP: Hypertext Preprocessor”。1994年,Rasmus Lerdorf为了统计自己网站访问者数量,用Perl写了个简单程序,这就是PHP的雏形。后来他用C语言重新编写,并加入了数据库访问功能。1995年,PHP(Personal Home Page Tools)对外发布了第一个版本PHP1。之后,越来越多的网站开始使用PHP,用户强烈要求增加循环语句、数组变量等特性,于是在1995年发布的PHP2中加入了MySQL的支持。

    Andi Gutmans和Zeev Suraski在为大学项目开发电子商务程序时,发现PHP2功能明显不足,于是重写了代码,发布了PHP3。PHP3是第一个具有现代PHP语法结构的版本,它最强大的地方在于可扩展性——新增的功能和广泛的第三方数据库、API支持,让各种程序的编写成为可能。

    PHP3发布不久,Andi Gutmans和Zeev Suraski又开始重新编写PHP代码,目标是增强复杂程序运行时的性能和代码的模块化。经过不懈努力,Zend引擎研发成功,并于1999年中期引入PHP。基于该引擎,并结合更多新功能的PHP4于2000年5月正式发布。除了更高的性能,PHP4还包含一些关键功能:支持更多Web服务器、HTTP Sessions支持、输出缓冲、更安全的用户输入,以及一些新的语言结构。

    PHP5于2004年7月正式发布,核心是Zend引擎2代(PHP7是Zend加强版3代),引入了新的对象模型和大量新功能,开始支持面向对象编程。PHP6经历了一段漫长的开发流产后,最终被放弃,但PHP5.6已经包含了很多PHP6想实现的特性,为PHP7的研发争取了宝贵时间。2015年12月3日,PHP 7.0发布,性能相比PHP5.6整整提升了2倍,这一成功让很多核心开发成员回归社区。2020年11月26日,PHP8发布。与PHP7系列相比,PHP8对各种变量判断和运算采用了更严格的验证模式,这为后续版本的JIT性能优化打下了基础。

    PHP作为一种高级语言,最大的特点是开源,在设计上属于C语言体系。这让很多接受过高等教育的初学者能很快上手,入门简单、容易找工作,自然粉丝众多。如果数据量大、访问压力大,可以集成Redis、MySQL分表分区分库、Elasticsearch搜索引擎、消息队列写保护以及PHP系统分布式集群部署等技术方案,来缓解数据存储、服务访问和数据检索的压力。

    无论是大中小型项目,PHP都是一个非常合适的高级编程语言,关键就看项目团队对它的掌握程度。但对于较大、较复杂的项目,最常见的php-fpm编程模式就暴露出一些薄弱之处。针对这些问题,最简单靠谱的方案就是及时升级到兼容的高版本——PHP7.0相比PHP5.6性能提升了2倍,PHP7.4提供的Preloading预加载机制实现了部分程序常驻内存,获得了不错的性能提升,PHP8又提供了高效的JIT(Just-In-Time即时编译)支持。另外,水平更高的开发者可以转向难度更高的php-cli编程,它能解决大部分系统性能问题,PHP7和PHP8都支持这种模式。

    经过二十多年的发展,随着php-cli相关组件的快速发展和完善,PHP已经可以应用在TCP/UDP服务、高性能Web、WebSocket服务、物联网、实时通讯、游戏、微服务等非Web领域的系统研发中。

    根据W3Techs 2019年12月6日发布的统计数据,PHP在Web网站服务器端使用的编程语言中所占份额高达78.9%。在内容管理系统的网站中,有58.7%的网站使用WordPress(PHP开发的CMS系统),这占所有网站的25.0%。

    语言特点

    开源免费

    PHP是一个受众巨大、拥有众多开发者的开源软件项目。Linux + Nginx + MySQL + PHP是它的经典部署方式,相关软件全部开源免费,使用PHP可以省下大笔正版授权费用。不过,作为开源软件,PHP缺乏大型科技公司的支持背景,网络上唱衰的声音经久不衰。但它的持续迭代和性能持续增强的现实却鼓舞人心,PHP社区用实际行动给出了强有力的回击。

    快捷高效

    PHP的内核由C语言编写,基础好、效率高,可以用C语言开发高性能的扩展组件。核心内置函数超过1000个,功能应有尽有,开箱即用,代码简洁。PHP数组支持动态扩容,支持数字、字符串或混合键名的关联数组,大幅提升开发效率。作为一门弱类型语言,编译通过率高,相比其他强类型语言开发效率快。此外,PHP天然支持热部署——在php-fpm模式下,代码文件覆盖即完成热部署。经过20多年发展,互联网上可以搜到海量参考资料供学习参考。

    性能提升

    PHP版本越高,整体性能越强。根据官方介绍,PHP 7.0.0对比PHP5.6性能提升了2倍,PHP7.4比PHP7.0快了约30%,PHP8.0在性能上又相对PHP7.4改进了大约10%。PHP 8.0引入了JIT编译器特性,同时加入了命名参数、联合类型、注解、Constructor Property Promotion、match表达式、nullsafe运算符,以及对类型系统、错误处理和一致性的改进。PHP拥有自己的核心开发团队,保持5年一个大版本、1个月更新2个小版本的频率,最新的版本是PHP 8.0.8。PHP 7.0.0发布于2015年12月3日,此版本下最新版本是PHP 7.4.21(2021年7月1日);PHP 8.0.0发布于2020年11月26日,此版本下最新版本是PHP 8.0.8(2021年7月1日)。

    跨平台

    每个平台都有对应的PHP解释器版本,针对不同平台编译出目标平台的二进制码(PHP解释器)。PHP开发的程序可以不经修改,运行在Windows、Linux、Unix等多个操作系统上。

    常驻内存

    php-cli模式下可以实现程序常驻内存,各种变量和数据库连接都能长久保存在内存中实现资源复用。比较常用的做法是结合Swoole组件编写CLI框架。

    页面生命周期

    在php-fpm模式下,所有变量都是页面级的——无论是全局变量还是类的静态成员,都会在页面执行完毕后被清空。这种模式对程序员水平要求低,占用内存非常少,特别适合中小型系统的开发。

    运行机制

    PHP常见的运行模式有两种:php-fpm和php-cli。当PHP运行在php-fpm模式下,所有变量都是页面级的,执行完毕后被清空。运行在php-cli模式下,程序可以常驻内存,各种变量和数据库连接都能长久保存在内存中实现资源复用,性能得到很大提升。php-cli虽然开发比较复杂,但能获得更高的性能,对开发者要求较高,比较常用的做法是结合Swoole组件编写CLI框架,各种变量能保存在跨进程的高性能共享内存Table中,可以开发出支持热启动的php-cli可靠应用系统。

    php-fpm在PHP 5.3.3版本(2010年7月22日)成为官方正式组件。它提供了稳定可靠的进程管理服务——进程不足时智能扩充,闲置时自动回收销毁多余进程,同时对程序的容错能力很强,运行非常稳定,可以应付企业级开发需求。php-fpm能很好地处理通过HTTP/HTTPS等TCP/IP协议进行的用户输入输出,页面级生命周期各种资源用完即释放,不存在内存泄漏问题。php-fpm也提供一些常驻内存的技术支持,例如PHP 7.4引入的opcache.preload能实现局部PHP类和函数的常驻内存,不过这个方法不够灵活,和服务器配置捆绑得太死。

    php-cli因为能实现各类资源的常驻内存,所以可以资源复用,更高效地完成多进程编程和异步编程,开发出负载能力更高的应用系统。但相比php-fpm的简单编程,开发者需要注意很多事项,并做很多附加的控制器开发,否则无法实现期待中的高性能。

    首先,开发者需要实现可靠的进程管理服务,保证系统进程遇到各类错误退出后能自动创建新进程,这样才能保证后续服务请求有足够空闲进程可分配。每个业务代码段都要做异常处理,让进程遇到非致命错误时不会退出——因为进程重启意味着程序和各类资源需要再次加载,这个过程的性能消耗不小。只有进程稳定运行,常驻内存才有意义。

    其次,因为常驻内存,编写的新程序必须重启服务才能生效,这一点习惯了fpm模式的开发者会感到陌生。另外,开发者需要手工释放内存,否则系统长时间运行后会出现内存泄漏。同时在CLI模式下,不能像fpm里直接用$_SERVER、$_POST、$_GET、$_COOKIE和$_FILES进行编程,需要自己去解析各种互联网通讯协议完成用户的输入输出。要实现多进程编程利用多核CPU计算,还要学习使用pcntl和posix编程,这里涉及异步编程逻辑,难度较大。比较常用的做法是结合Swoole组件编写CLI框架。

    PHP是一个活跃的社区开发语言,有专业的核心开发团队在持续不断地迭代,最新版本PHP 8.0.8引入了很多新特性。

    参考框架

    (一)WordPress内容管理系统(CMS)

    功能强大、扩展性强,易于扩充功能;搭建的博客对SEO搜索引擎友好,收录快、排名靠前;网站主题丰富,各色各样应有尽有;有强大的社区支持,上千万的开发者贡献和审查代码。

    (二)Hyperf

    Hyperf 是一个基于Swoole的高性能、高灵活性的渐进式PHP协程框架,内置协程服务器及大量常用组件,性能较传统基于PHP-FPM的框架有质的提升。在提供超高性能的同时,也保持着极其灵活的可扩展性,标准组件均基于PSR标准实现,基于强大的依赖注入设计,保证了绝大部分组件或类都是可替换与可复用的。

    (三)ThinkPHP

    ThinkPHP是一个快速、兼容且简单的轻量级国产PHP开发框架,最早诞生于2006年初,遵循Apache2开源协议发布。秉承简洁实用、出色性能和至简的代码,注重易用性。拥有众多原创功能和特性,在社区团队的积极参与下,易用性、扩展性和性能方面不断优化改进。

    (四)Drupal

    Drupal诞生于2000年,是一个基于PHP语言编写的开发型CMF(内容管理框架),即CMS + framework。Drupal的架构由三大部分组成:内核、模块、主题,三者通过Hook机制紧密联系。可自由配置,能支持从个人博客到大型社区驱动网站等各种不同应用的网站项目。

    (五)EasySwoole

    EasySwoole是一款常驻内存型的国产分布式Swoole框架,支持同时混合监听HTTP、WebSocket、自定义TCP、UDP协议,拥有丰富的组件,例如协程连接池、协程Kafka客户端、协程ElasticSearch客户端、协程Redis客户端、协程自定义队列、协程Memcached客户端、协程HTTP客户端、Crontab定时器等。

    (六)Lara vel

    Lara vel是一套简洁、优雅的PHP Web开发框架。它可以让你从面条一样杂乱的代码中解脱出来,帮你构建一个不错的网络APP,而且每行代码都可以简洁、富于表达力。

    (七)CakePHP

    CakePHP设计层面很优雅,没有自带多余的library,所有功能都是纯粹的框架,执行效率还不错。

    (八)imi

    它可以运行在PHP-FPM、Swoole、Workerman多种容器环境下。

    语言参考

    内置函数

    PHP有很多标准的函数和结构。还有一些函数需要和特定的扩展模块一起编译,否则在使用它们时就会得到一个致命的“未定义函数”错误。例如,要使用image函数中的imagecreatetruecolor(),需要在编译PHP时加上GD的支持;要使用mysqli_connect()函数,就需要在编译PHP时加上MySQLi支持。很多核心函数已包含在每个版本的PHP中,如字符串和变量函数。调用phpinfo()或get_loaded_extensions()可以得知PHP加载了哪些扩展库。同时,很多扩展库默认就是有效的。

    在PHP编程中,用户输入安全非常重要,对用户各个方面的输入都要做好过滤处理。内置函数里提供了不少安全相关的函数,编程学习者需要重点掌握以下7个重点函数:

    • htmlentities — 将字符转换为HTML转义字符
    • htmlspecialchars_decode — 将特殊的HTML实体转换回普通字符
    • htmlspecialchars — 将特殊字符转换为HTML实体
    • nl2br — 在字符串所有新行之前插入HTML换行标记
    • str_replace — 子字符串替换
    • strip_tags — 从字符串中去除HTML和PHP标记
    • stripslashes — 反引用一个引用字符串

    预定义变量对于全部脚本而言,PHP提供了大量的预定义变量。这些变量将所有的外部变量表示成内建环境变量,并将错误信息表示成返回头。在PHP编程中经常需要用到的预定义变量如下:

    $GLOBALS — 引用全局作用域中可用的全部变量
    $_SERVER — 服务器和执行环境信息
    $_GET — HTTP GET 变量(用户输入之一)
    $_POST — HTTP POST 变量(用户输入之一)
    $_FILES — HTTP 文件上传变量
    $_SESSION — Session 变量(用户会话)
    $_COOKIE — HTTP Cookies(用户会话标识)

    数据类型

    PHP支持10种原始数据类型。四种标量类型:bool(布尔型)、int(整型)、float(浮点型,也称作double)和string(字符串);四种复合类型:array(数组)、object(对象)、callable(可调用)和iterable(可迭代);最后是两种特殊类型:resource(资源)和NULL(无类型)。

    运算符

    运算符是通过给出一个或多个值(表达式)来产生另一个值(从而整个结构构成一个表达式)的东西。PHP的运算符包含:运算符优先级、算术运算符、赋值运算符、位运算符、比较运算符、错误控制运算符、执行运算符、递增/递减运算符、逻辑运算符、字符串运算符、数组运算符和类型运算符。

    流程控制

    任何PHP脚本都是由一系列语句构成的。一条语句可以是一个赋值语句、一个函数调用、一个循环、一个条件语句,甚至是一个什么也不做的空语句。语句通常以分号结束,此外还可以用花括号将一组语句封装成一个语句组,语句组本身可以当作是一行语句。

    类与对象

    每个类的定义都以关键字class开头,后面跟着类名,再后面跟着一对花括号,里面包含类的属性与方法的定义。类名可以是任何非PHP保留字的合法标签。一个合法类名以字母或下划线开头,后面跟着若干字母、数字或下划线。以正则表达式表示为:^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$。一个类可以包含属于自己的常量、变量(称为“属性”)以及函数(称为“方法”)。要创建一个类的实例,必须使用new关键字。当创建新对象时,该对象总是被赋值,除非该对象定义了构造函数并且在出错时抛出了一个异常。类应在被实例化之前定义(某些情况下则必须这样)。如果在new之后跟着的是一个包含有类名的字符串,则该类的一个实例被创建。如果该类属于一个命名空间,则必须使用其完整名称。

    命名空间

    在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码(如类或函数)时碰到的两类问题:用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突,以及为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建别名(或简短)的名称,提高源代码的可读性。PHP命名空间提供了一种将相关的类、函数和常量组合到一起的途径。

    【参考资料出处:百度百科】

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 PHP
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。

    AlwaysUp Windows版
    AlwaysUp Windows版

    AlwaysUp是一款面向Windows的系统服务注册与程序托管工具,可让普通应用、脚本及批处理在无人登录时随系统启动,并通过状态检测、异常重启、资源监控和邮件通知保障关键任务持续运行。

    即将离开本站
    您即将前往第三方网站,请确认是否继续?