news 2026/4/23 22:59:49

PHP 基础案例教程之 01-PHP 开篇

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PHP 基础案例教程之 01-PHP 开篇

初识 PHP

PHP 概述

PHP 是一种运行在服务器端的脚本语言,其语法风格融合了 C、Java 和 Perl 的特点。

PHP 主要用来开发动态网页,它可以将网页中需要动态变化的内容通过程序来生成,PHP 代码还可以嵌入 HTML 中使用,从而在服务端动态生成网页。

PHP 动态网页的处理流程:

PHP 发展史

PHP 最初为 Personal Home Page(个人主页)的缩写,于 1994 年由拉斯姆斯·勒多夫(Rasmus Lerdorf)创建,用来显示个人履历和统计网页流量。

1995 年 6 月,拉斯姆斯·勒多夫发布了 PHP 1.0,同年又发布了 PHP 2.0,命名为 PHP/FI(PHP/Form Interpreter),该版本可以处理复杂的嵌入式标签语言,同时支持 MySQL 数据库,此时使用 PHP/FI 开发的网站数量迅速增长,提高了其在开发领域的影响力。

1997 年,泽夫·苏拉塞(Zeev Suraski)和安迪·古特曼(Andi Gutmans)加入了 PHP 开发小组,重新编写了底层的解析引擎,很多开发人员也自愿加入到 PHP 的工作中,从此 PHP 成为了真正意义上的开源项目。

1998 年 6 月,PHP 3.0 版本发布,这一版本具有更好的执行效率、更加清晰的结构和更高的可扩展性,开发人员也可以参与到 PHP 扩展模块的开发。

2000 年 5 月,PHP 4.0 版本发布,该版本使用 Zend 引擎为 PHP 提供强大的动力,提高了运行复杂程序的性能。相比 PHP 的前几个版本,PHP 4.0 的性能高出近十倍,此外还更新了一些其他内容,例如支持多种 Web 服务器、丰富的函数库、类和对象的语法等,这一版本中逐渐开始采用面向对象的思想。

2004 年 7 月,PHP 5.0 正式发布,这标志着 PHP 一个新时代的到来,该版本使用第二代 Zend 引擎,引入了完善的面向对象机制。

2007 年,PHP 开发小组开始重构 PHP 6.0 版本,在该版本中进一步完善了面向对象机制,精简数组语法,但是 PHP 6.0 版本没有正式发布。

2015 年 6 月,PHP 7.0 发布,该版本是 10 年来的大改版,在性能上有更大的突破,PHP 7.0 在 PHP 5.0 基础上做了进一步的改进,功能更强大,执行效率更高。

2020 年 11 月,PHP 8.0 发布,该版本包含了很多新功能与优化项,包括命名参数、联合类型、注解、构造器属性提升、match 表达式、nullsafe 运算符、JIT,并改进了类型系统、错误处理、语法一致性。

PHP 特点

随着时间的推移,PHP 凭借其特点,在 Web 开发领域占据了重要地位。

  • 开源免费:PHP 的源代码是开源的,并且可以免费使用。
  • 跨平台:PHP 的跨平台性很好,移植方便,在 Linux 平台和 Windows 平台上都可以运行。
  • 面向对象:PHP 提供了类和对象的语法,使用 PHP 进行 Web 开发时可以选择面向对象编程。
  • 支持多种数据库:PHP 支持 ODBC(开放数据库互联),可以连接任何支持该标准的数据库,如 MySQL、Oracle、SQL Server 和 DB2 等。PHP 与 MySQL 是最佳搭档,使用得最多。
  • 开发效率高:PHP 语法简单、实用性强、开发速度快,目前有很多 PHP 框架可以提高项目的开发速度。

根据 TIOBE 公布的 2024 年 4 月编程语言排行榜,PHP 在该榜单中的排名已跌至第 17 位。

在实际应用中,编程语言的选择应根据具体的项目需求、团队技术栈、性能要求等多方面因素来决定。虽然 PHP 的排名有所下降,但它在一些领域仍然被广泛使用,特别是在中小型网站和 Web 内容管理系统中。

搭建 PHP 开发环境

集成环境

使用集成安装的方式,可以快速搭建 PHP 系列开发环境,集成安装可以快速搭建开发环境,免去繁琐的环境安装、配置过程,但集成安装有可能会造成局部环境冲突,需要根据实际情况妥善选择。

常见的集成安装环境有:FlyEnv、UPUPW、PHPStudy、LNMP/LAMP、宝塔等。

FlyEnv 是一款一体化全栈环境管理工具,提供了一个完整的运行环境,通过极速多版本切换、全栈技术支持和无缝跨平台体验,简化开发流程。

FlyEnv:https://www.flyenv.com/

UPUPW 绿色服务器平台是 Windows 下很有特色的一款免费服务器 PHP 套件,包括 Apache、Nginx、MySQL、Redis 等核心应用,支持 PHP、ASP、ASP.NET 解析语言,更适应 Windows 服务器的高效生产工作。

UPUPW:https://www.upupw.net/

LNMP 一键安装包是一个用 Linux Shell 编写的可以为 Linux VPS 或独立主机安装 LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的 Shell 程序。

LNMP:https://lnmp.org/

PhpStudy(小皮面板)是国内 12 年老牌公益软件,集安全,高效,功能与一体,已获得全球用户认可安装,运维也高效,支持一键 LAMP、LNMP、集群、监控、网站、FTP、数据库、JAVA 等 100 多项服务器管理功能。

PhpStudy:https://www.xp.cn/

宝塔面板支持一键 LNMP/LAMP/WNMP/WAMP/IIS/SQLServer/MySQL/集群/监控/网站/FTP/数据库/JAVA/PM2 等 100 多项服务器管理功能。

宝塔面板:https://www.bt.cn/

PHP

本地开发也可以手动安装 PHP,课程选用 PHP 版本为 8.4。

Windows 系统下载 PHP:https://windows.php.net/download/

  • PHP 版本分为线程安全(Thread Safe,TS)和非线程安全(Non Thread Safe,NTS)。
  • 一般情况下,Apache+PHP 选择 TS,Nginx+PHP、IIS+PHP 选择 NTS。
  • 在 IIS 或 Nginx 中以 FastCGI 方式运行 PHP 时,PHP 拥有独立的进程,并且 FastCGI 是单一线程的,不存在多个线程之间可能引发的问题,因此使用非线程安全版本能够获得更好的性能。
  • PHP 的线程安全与非线程安全版本只存在于 Windows 版本中,在 macOS/Linux 系统中,PHP 通常只提供非线程安全版本,因为 macOS/Linux 系统采用的是多进程的工作方式,不存在线程安全问题。
  • PHP 压缩包下载解压完成后,自行根据压缩包内提供的 .ini 配置文件来编写 PHP 配置文件(php.ini),并将整个文件夹复制到磁盘指定的位置中即可。

Linux 系统下载 PHP:使用 yum/apt 包管理工具安装。

macOS 系统下载 PHP:使用 HomeBrew 包管理工具安装。

IDE

Visual Studio Code、IntelliJ IDEA、PHPStorm 均可开发 PHP 项目,建议直接使用 IntelliJ IDEA 作为 PHP 项目开发所使用的 IDE。

在 IntelliJ IDEA 中,有支持 PHP 项目的插件。

在 IntelliJ IDEA 中,还需要配置 PHP 语言级别和 CLI 解释器,以支持 PHP 项目开发。

phpinfo

PHP 开发环境搭建完成后,可以创建一个 PHP 项目,查看 PHP 环境信息。

  • 新建 PHP 文件,并编写 PHP 文件基本结构。
  • 使用 PHP 内置的 phpinfo 函数输出 PHP 环境信息。
  • 配置 PHP 内置 Web 服务器,运行 PHP 项目。

PHP 内置了一个简单的 Web 服务器,自 PHP 5.4.0 起可用。

使用 PHP 内置 Web 服务器,无需额外安装和配置复杂的 Web 服务器软件(如 Apache、 Nginx),即可快速启动一个简单的服务器来运行 PHP 脚本。

PHP 内置 Web 服务器在功能和效率上不如 Apache、Nginx 等成熟的 Web 服务器,但对于小型项目的开发和调试非常方便。


示例:phpinfo

新建 PHP 项目:

入口页面(index.php):

<?php // 所有的PHP脚本以 <?php 开头 phpinfo(); // 输出PHP环境信息

配置 PHP 内置 Web 服务器:

示例效果:


PHP 手册

访问手册

部分语法、新特性,需要通过查阅 PHP 手册来学习。

PHP 手册:https://www.php.net/manual/zh/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 15:37:37

实战:解决PyTorch中OMP LIBIOMP5MD.DLL冲突的5种方法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个Jupyter Notebook教程&#xff0c;逐步演示解决PyTorch中OMP LIBIOMP5MD.DLL冲突的5种方法&#xff1a;1. 更新Anaconda环境&#xff1b;2. 设置环境变量KMP_DUPLICATE_LI…

作者头像 李华
网站建设 2026/4/22 2:28:19

AI如何自动修复DLL错误?4DDIG DLL FIXER解析

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个基于AI的DLL修复工具&#xff0c;能够自动扫描Windows系统&#xff0c;检测损坏或丢失的DLL文件。使用机器学习算法分析常见的DLL错误模式&#xff0c;自动从可信源下载并…

作者头像 李华
网站建设 2026/4/17 19:55:26

图像修复服务化:fft npainting lama REST API封装教程

图像修复服务化&#xff1a;fft npainting lama REST API封装教程 1. 引言&#xff1a;从WebUI到API服务的跃迁 你是不是也遇到过这样的场景&#xff1f;好不容易调好了一个图像修复模型&#xff0c;结果只能通过网页界面点点点操作。每次想集成到自己的项目里&#xff0c;就…

作者头像 李华
网站建设 2026/4/23 8:43:07

学C#x2B;#x2B;就单一出路走竞赛吗?画风正在改变

现在C的青少年学习界&#xff0c;一个趋势正在悄然改变&#xff1a;门槛已大幅降低&#xff0c;理论上让会计算机打字、会英文、会加减乘除的学生也能轻松入门——这门槛已接近Python Turtle的水平。C从此可以用于兴趣类素质教育&#xff0c;而非单一地为了竞赛而学。作为在编程…

作者头像 李华
网站建设 2026/4/18 15:19:48

语音预处理自动化:FSMN-VAD帮你省下90%时间

语音预处理自动化&#xff1a;FSMN-VAD帮你省下90%时间 在语音识别、会议记录转写或智能客服系统中&#xff0c;一个常见的痛点是&#xff1a;原始录音里夹杂着大量无意义的静音段。这些“空白”不仅浪费存储空间&#xff0c;更会拖慢后续处理速度——你可能花了几小时去转写一…

作者头像 李华
网站建设 2026/4/17 21:05:47

GetQzonehistory完整指南:如何一键备份QQ空间所有历史数据

GetQzonehistory完整指南&#xff1a;如何一键备份QQ空间所有历史数据 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 想要永久保存QQ空间那些珍贵的青春回忆吗&#xff1f;GetQzonehis…

作者头像 李华