Menu
CoddyTech

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、elseif ($x > 0) { ... } elseif (...) { ... } else { ... }
三元运算符$y = $x > 0 ? "pos" : "neg";
空合并运算符$name = $_GET["name"] ?? "guest";
switchswitch ($day) { case 1: ...; break; default: ... }
for 循环for ($i = 0; $i < 10; $i++) { ... }
while 循环while ($x < 100) { ... }
foreachforeach ($items as $item) { ... }
match 表达式$r = match($x) { 1 => "one", default => "?" };
break 和 continuebreak;, 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) { ... }

超全局变量

在任何作用域都能使用的内置数组,主要用来获取请求数据。

超全局变量存放的内容
$_GETURL 查询字符串中的参数
$_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 中的关联数组是什么?
关联数组是使用字符串键名代替(或同时使用)数字索引的 PHP 数组,例如 ["name" => "Ada", "age" => 30]。PHP 只有一种数组类型,既是有序列表,也是键值映射,所以可以用 $user["name"] 按键取值,用 foreach ($user as $key => $value) 遍历。
可以在线练习 PHP 吗?

可以。打开 PHP 在线编辑器,就能在浏览器里运行这份速查表中的任意代码片段,不需要服务器,也不用在本地安装 PHP。想系统学习时,Coddy 的免费交互式 PHP 课程会一步步带你从变量和数组学到函数和面向对象。

这份速查表适合初学者吗?

适合。内容从最常用的主题(变量、字符串、数组、流程控制)一直排到进阶主题(超全局变量和面向对象),第一天就能用上前面几部分,再慢慢掌握后面的内容。

Coddy 编程语言插图

在 Coddy 学习 PHP

开始