PHP 速查表
最后更新
Hello World 与 PHP 标签
PHP 代码写在 <?php ... ?> 标签内,标签之外的内容都会原样输出。
| 操作 | 语法 |
|---|---|
| 开始和结束 PHP 代码 | <?php ... ?> |
| 输出文本 | echo "Hello, World!"; |
| 格式化输出 | printf("%d items", $n); |
| 短 echo 标签(在 HTML 中) | <?= $name ?> |
| 单行注释 | // comment 或 # comment |
| 块注释 | /* comment */ |
| 语句结束符 | ; |
| 运行文件(命令行) | php index.php |
变量与类型
变量以 $ 开头,类型是动态的。
| 操作 | 语法 |
|---|---|
| 声明变量 | $name = "Ada"; |
| 常量 | const PI = 3.14; 或 define("PI", 3.14); |
| 标量类型 | int, float, string, bool |
| 空值 | $x = null; |
| 检查类型 | gettype($x), is_int($x), is_array($x) |
| 类型转换 | (int) $str, (string) $num |
| 变量是否存在或为空 | isset($x), empty($x) |
| 字符串插值 | echo "Hi $name"; |
字符串
双引号会解析其中的变量,单引号按字面输出。
| 操作 | 语法 |
|---|---|
| 拼接 | $a . $b |
| 长度 | strlen($s) |
| 转大写、转小写 | strtoupper($s), strtolower($s) |
| 截取子字符串 | substr($s, 0, 5) |
| 查找位置 | strpos($s, "x") |
| 替换 | str_replace("a", "b", $s) |
| 拆分成数组 | explode(",", $csv) |
| 把数组拼接成字符串 | implode(",", $arr) |
| 去掉首尾空白 | trim($s) |
| 格式化字符串 | sprintf("%05.2f", $n) |
数组(含关联数组)
同一种数组类型既能当索引列表,也能当键值映射。
| 操作 | 语法 |
|---|---|
| 索引数组 | $nums = [1, 2, 3]; |
| 关联数组 | $user = ["name" => "Ada", "age" => 30]; |
| 访问元素 | $nums[0], $user["name"] |
| 在末尾追加 | $nums[] = 4; |
| 设置键 | $user["role"] = "admin"; |
| 长度 | count($nums) |
| 检查键是否存在 | isset($user["name"]), array_key_exists("name", $user) |
| 删除元素 | unset($nums[1]); |
| 合并数组 | array_merge($a, $b) |
| 遍历键和值 | foreach ($user as $k => $v) { ... } |
流程控制
条件语句和循环沿用 C 风格的语法。
| 操作 | 语法 |
|---|---|
| if、elseif、else | if ($x > 0) { ... } elseif (...) { ... } else { ... } |
| 三元运算符 | $y = $x > 0 ? "pos" : "neg"; |
| 空合并运算符 | $name = $_GET["name"] ?? "guest"; |
| switch | switch ($day) { case 1: ...; break; default: ... } |
| for 循环 | for ($i = 0; $i < 10; $i++) { ... } |
| while 循环 | while ($x < 100) { ... } |
| foreach | foreach ($items as $item) { ... } |
| match 表达式 | $r = match($x) { 1 => "one", default => "?" }; |
| break 和 continue | break;, continue; |
函数
函数可以声明类型、默认值和可变参数。
| 操作 | 语法 |
|---|---|
| 基本函数 | function add($a, $b) { return $a + $b; } |
| 参数和返回值的类型声明 | function add(int $a, int $b): int { ... } |
| 默认值 | function greet($name = "guest") { ... } |
| 可变参数 | function sum(...$nums) { ... } |
| 按引用传递 | function inc(&$x) { $x++; } |
| 匿名函数 | $f = function($x) { return $x * 2; }; |
| 箭头函数 | $f = fn($x) => $x * 2; |
| 使用外部变量 | function() use ($n) { ... } |
超全局变量
在任何作用域都能使用的内置数组,主要用来获取请求数据。
| 超全局变量 | 存放的内容 |
|---|---|
$_GET | URL 查询字符串中的参数 |
$_POST | 通过 POST 提交的表单数据 |
$_REQUEST | $_GET、$_POST 和 $_COOKIE 的合集 |
$_SESSION | 每个用户的会话数据(调用 session_start() 之后) |
$_COOKIE | 浏览器发送的 Cookie |
$_SERVER | 服务器和请求信息(REQUEST_METHOD 等) |
$_FILES | 上传文件的元数据 |
$_ENV | 环境变量 |
常用数组函数
PHP 自带数百个数组函数,下面这些是最常用的。
| 函数 | 作用 |
|---|---|
array_map($fn, $arr) | 转换每个元素 |
array_filter($arr, $fn) | 保留回调返回 true 的元素 |
array_reduce($arr, $fn, $init) | 归约成一个值 |
in_array($v, $arr) | 检查某个值是否存在 |
array_keys($arr) / array_values($arr) | 获取所有键或所有值 |
sort($arr) / rsort($arr) | 原地排序(升序或降序) |
usort($arr, $cmp) | 用自定义比较函数排序 |
array_slice($arr, 1, 3) | 截取一部分 |
array_push($arr, $v) / array_pop($arr) | 在末尾添加或删除元素 |
类与面向对象
PHP 支持类、继承、接口和访问修饰符。
| 操作 | 语法 |
|---|---|
| 定义类 | class User { ... } |
| 带访问修饰符的属性 | public string $name; |
| 构造函数 | function __construct($name) { $this->name = $name; } |
| 构造函数属性提升 | function __construct(public string $name) {} |
| 创建实例 | $u = new User("Ada"); |
| 访问成员 | $u->name, $u->save() |
| 静态成员 | User::$count, User::create() |
| 继承 | class Admin extends User { ... } |
| 接口 | interface Saveable { public function save(); } |
| 实现接口 | class User implements Saveable { ... } |
最常用的 PHP 语法,全都在这一页。这份 PHP 速查表是核心语言的快速参考:变量和类型、字符串、数组(包括关联数组)、流程控制、函数、$_GET 和 $_POST 等超全局变量,以及类。
这里的内容都是标准 PHP,可以在现代版本上运行。需要什么就复制什么,也可以在 PHP 在线编辑器里直接运行每个代码片段,无需搭建服务器。
PHP 速查表常见问题
这份 PHP 速查表免费吗?
免费。这份 PHP 速查表完全免费,无需注册。把它加入书签,需要查字符串函数、数组函数或超全局变量时随时回来看。
PHP 中的 == 和 === 有什么区别?
== 是宽松比较:比较前会先把两边转换成相同的类型,所以 0 == "0" 甚至 0 == "" 在不同版本中的结果可能出人意料。=== 是严格比较:只有值相等且类型相同时才返回 true,所以 0 === "0" 为 false。优先使用 ===,可以避免类型转换带来的 bug。PHP 中的关联数组是什么?
["name" => "Ada", "age" => 30]。PHP 只有一种数组类型,既是有序列表,也是键值映射,所以可以用 $user["name"] 按键取值,用 foreach ($user as $key => $value) 遍历。可以在线练习 PHP 吗?
可以。打开 PHP 在线编辑器,就能在浏览器里运行这份速查表中的任意代码片段,不需要服务器,也不用在本地安装 PHP。想系统学习时,Coddy 的免费交互式 PHP 课程会一步步带你从变量和数组学到函数和面向对象。
这份速查表适合初学者吗?
适合。内容从最常用的主题(变量、字符串、数组、流程控制)一直排到进阶主题(超全局变量和面向对象),第一天就能用上前面几部分,再慢慢掌握后面的内容。