← PHP本地开发环境配置:从零搭建AMP环境 没有下一篇了 →

PHP是什么?

原创 2026-05-08 PHP 已有人查阅

PHP就是一种专门用来搭建网站的后端编程语言。1994年,Rasmus Lerdorf最开始搞出来的时候,其实就是一套简单的通用接口(Common Gateway Interface,CGI)工具。没想到后来发展成了使用量较大的服务器端语言。

2026年1月,PHP 8.4.3稳定版已经发布了。这个版本修复了不少bug,也优化了性能。如果你还在用PHP 7.x,真心建议看看升级到8.x的收益。

个人经验:我接手过好几个项目,从PHP 5.6直接跳到PHP 8.x,有些老代码里的mysql_*函数得改掉,但性能提升相当明显。一个WordPress站,升级后页面响应时间从300ms降到了120ms左右。

运行环境:PHP能在哪儿跑?

跟Java有点像,PHP也是跨平台的语言。不管是Windows、macOS还是Linux,都能跑。Web服务器这块,Apache、Nginx、IIS、LightTPD基本都支持。

很多时候我们用的一键集成包,比如XAMPP(Apache + MariaDB + PHP + Perl),底层就是把这些东西打包好。

依赖管理:Composer和PEAR

PHP有两个比较主流的东西来管理和复用代码库:

  • PEAR(PHP Extension and Application Repository):比较老牌的扩展开源仓库,提供一些基础类库

  • Composer:现在PHP开发必备的依赖管理工具,类似Node.js的npm或者Python的pip

现在大多数PHP项目都用Composer。比如你想用Monolog做日志记录,在项目根目录创建composer.json

{
    "require": {
        "monolog/monolog": "2.9.0"
    }
}

然后终端运行:

composer install

Composer会自动下载并把类加载机制搞定。你只需要在代码开头引入vendor/autoload.php就行。

PHP的优势(为什么它火了这么多年?)

跨平台(Cross-Platform)

你在Windows上写的代码,上传到Linux服务器上通常直接能跑。不像有些语言要改路径分隔符、换行符之类的。

学习门槛不高

如果你有基础的C、Java或者JavaScript语法底子,看PHP代码基本能猜个七八成。

个人建议:新手别一上来就学框架。先拿原生PHP写个简单的留言板或者博客,搞清楚$_GET$_POST$_SESSION这些超全局变量怎么用,再看框架会顺畅很多。

数据库支持广

PHP通过PDO(PHP Data Objects)扩展可以连接几乎所有主流数据库:

  • 关系型:MySQL、PostgreSQL、SQLite、SQL Server

  • 非关系型:MongoDB、Redis

示例:用PDO连接MySQL并查询数据

<?php
// PDO连接MySQL的常见写法
$dsn = "mysql:host=localhost;dbname=testdb;charset=utf8mb4";
$pdo = new PDO($dsn, "用户名", "密码");

// 设置错误模式为异常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $pdo->query("SELECT id, username FROM users LIMIT 5");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo "用户: " . $row['username'] . PHP_EOL;
}
?>

为什么用PDO而不是老旧的mysqli PDO支持12种数据库驱动,换数据库时改动很小。mysqli只认MySQL。PDO还能用命名占位符做预处理,SQL注入基本防住了。

开源(Open Source)

PHP的Zend引擎源代码在GitHub上能直接看到。你也可以提交补丁或者报告bug。

社区活跃且友好

PHP官方文档(php.net/manual)的质量在编程语言里算相当好的了。每个函数都有用户贡献的示例和注意事项。

我遇到过一个问题:json_decode()返回null,翻文档看到json_last_error_msg(),一查原来是字符串有BOM头(Byte Order Mark)。社区文档里早就有人提到了。

多范式编程

PHP支持以下几种写法混用:

  • 过程式(写小脚本很方便)

  • 面向对象(类、继承、接口、trait)

  • 函数式(闭包、箭头函数)

  • 命令式

代码号示例:用函数式写法处理数组

<?php
$scores = [85, 92, 78, 88, 95];

// 箭头函数过滤出及格的分数
$passed = array_filter($scores, fn($score) => $score >= 60);

// array_map把分数转成等级
$grades = array_map(function($score) {
    if ($score >= 90) return 'A';
    if ($score >= 80) return 'B';
    if ($score >= 70) return 'C';
    return 'D';
}, $passed);

print_r($grades);
?>

与HTML结合紧密

PHP代码可以直接嵌在HTML里面,用<?php ... ?>包裹就行。这也是为什么WordPress主题开发者大部分写的是混合文件(.php里混着HTML/CSS/JS)。

简单的动态页面示例:

<!DOCTYPE html>
<html>
<head>
    <title>代码号学习平台</title>
</head>
<body>
    <h1>用户列表</h1>
    <ul>
    <?php
    $users = ['张三', '李四', '王五'];
    foreach ($users as $user) {
        echo "<li>" . htmlspecialchars($user) . "</li>";
    }
    ?>
    </ul>
</body>
</html>

注意htmlspecialchars()——不转义的话,如果用户名包含<script>标签,XSS攻击就到手了。

性能表现

PHP作为Apache模块(mod_php)运行的时候,在Linux系统上速度不慢。配合OpCache(字节码缓存,Bytecode Cache)加上MySQL索引优化,高并发场景也能撑住。

为什么要学PHP?能做什么?

PHP可以做出这些东西:

  • 动态网页(用户登录、搜索、评论功能)

  • 内容管理系统(CMS),比如WordPress、Drupal、Joomla

  • 电商网站,比如Magento、OpenCart、Shopee的部分业务也用PHP

  • RESTful API后端

如果你用框架开发,效率会更高。主流的PHP框架有:

框架名 特点 适用场景
Laravel 功能,生态丰富,Eloquent ORM好用 中大型Web应用
Symfony 组件化程度高,稳定 企业级项目
WordPress 严格说是CMS,但插件机制强 博客、企业站、电商

个人经验:小项目或者API服务,Lumen(Laravel的微框架)够用了。别为了用框架而用框架,原生PHP写个简单的图片上传接口也就几十行代码。

哪些大公司在用PHP?

  • Facebook:早期PHP,后来自己做了HipHop Virtual Machine(HHVM)来提升性能。现在部分业务也转Hack语言了,但PHP的基因一直在。

  • Wikipedia:百科网站,MediaWiki引擎就是PHP写的。

  • WordPress:43%左右的网站跑在WordPress上,而WordPress是PHP写的。间接说明PHP的市场占有率还是很高。

  • Shopify:部分业务用PHP,尤其是主题系统和插件生态。

  • Slack、Etsy、Tumblr早期也都是PHP技术栈。

你的第一个PHP程序:Hello World

创建一个文件index.php,写这些内容:

<?php
echo "Hello, World!";
?>

然后把文件放在web服务器的根目录(比如Apache的htdocs,Nginx的html目录),浏览器访问就能看到输出了。

代码号学习提醒:PHP标签<?php ?>之外的任何字符(包括空格、换行)都会直接发送到浏览器。如果你做文件下载或者JSON API输出,标签外不要有空白字符。

环境准备:快速上手

想省事的,直接装XAMPP或者WampServer。想动手配置的,可以分别装:

  1. Web服务器(Nginx或Apache)

  2. PHP 8.4.3(从php.net下载)

  3. 数据库(MySQL或MariaDB)

个人建议:初学者用XAMPP就够了。生产环境再单独配置各个组件,了解PHP-FPM(FastCGI Process Manager)和Nginx的配合方式。

学习PHP之前需要知道什么?

如果你学过这些,上手会更快:

  • HTML + CSS:毕竟PHP输出的是HTML

  • 基础的JavaScript:跟PHP不直接相关,但前后端交互要懂

  • SQL语法:增删改查是基本中的基本

  • 基本的编程逻辑:变量、循环、条件判断、函数

不用全学完再来弄PHP,可以一边写PHP一边补别的。

本节课程知识要点

知识点 说明
PHP运行机制 服务器端脚本语言,执行后返回HTML
常用集成环境 XAMPP、WampServer、LNMP/LAMP
依赖管理 Composer是目前主流方案
数据库操作 推荐用PDO,支持预处理和多种数据库
框架选择 Laravel适合快速开发,Symfony适合大型项目

专业名词速查

  • CGI (Common Gateway Interface):通用接口,Web服务器和外部程序的交互协议

  • PDO (PHP Data Objects):PHP数据库统一访问抽象层

  • OpCache:PHP字节码缓存扩展,能显著提升性能

  • FPM (FastCGI Process Manager):PHP的FastCGI进程管理器,处理高并发请求

  • Composer:PHP的依赖管理工具

  • ORM (Object Relational Mapping):对象关系映射,把数据库表映射成类

  • MVC (Model-View-Controller):模型-视图-控制器,大多数PHP框架都采用的设计模式

← PHP本地开发环境配置:从零搭建AMP环境 没有下一篇了 →
分享笔记 (共有 篇笔记)
验证码:
微信公众号