PHP 基础
本页为 PHP 入门速查,覆盖语法基础、数据类型、数组、控制结构和函数。完整的语法细节和 HTTP 处理见 PHP 语法详解,PHP 8.x 新特性见 PHP 8.x 新特性。
PHP 嵌入 HTML
PHP 代码用 <?php ... ?> 标签包裹,由服务端解释后输出到页面:
<?php
$greeting = "Hello, PHP!";
echo "<p>{$greeting}</p>";
?>
短标签 <?= expr ?> 等价于 <?php echo expr; ?>,在所有 PHP 版本中默认可用。
数据类型
PHP 8.x 支持以下标量和复合类型:
| 类型 | 示例 | 说明 |
|---|---|---|
int | 42 | 整型 |
float | 3.14 | 浮点型 |
string | "hello" | 字符串 |
bool | true / false | 布尔型 |
array | [1, 2, 3] | 数组(有序映射) |
object | new stdClass() | 对象 |
null | null | 空值 |
enum | enum Color: string | 枚举(PHP 8.1+) |
用 var_dump($x) 查看变量的类型和值,gettype($x) 获取类型字符串。
变量
PHP 变量以 $ 开头,弱类型,无需声明类型:
$name = "Alice"; // string
$age = 25; // int
$pi = 3.14; // float
$active = true; // bool
四种作用域:local(函数内)、global(函数内用 global 关键字访问)、static(函数调用间保留)、parameter(函数参数)。
数组
PHP 的数组本质是有序映射(ordered map),同时充当列表、字典和数据结构。
索引数组
$fruits = ["apple", "banana", "cherry"];
echo $fruits[0]; // apple
$fruits[] = "date"; // 追加
count($fruits); // 4
关联数组
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Xi'an",
];
echo $person["name"]; // Alice
遍历
// 索引数组
for ($i = 0; $i < count($fruits); $i++) {
echo $fruits[$i];
}
// 关联数组
foreach ($person as $key => $value) {
echo "{$key}: {$value}";
}
常用数组函数
count($arr)— 元素数量array_merge($a, $b)— 合并array_map(fn($x) => ..., $arr)— 映射array_filter($arr, fn($x) => ...)— 过滤in_array($val, $arr)— 存在性检查array_keys($arr)/array_values($arr)— 取键/值
控制结构
// if / elseif / else
if ($score >= 90) {
echo "A";
} elseif ($score >= 60) {
echo "B";
} else {
echo "C";
}
// match 表达式(PHP 8.0+,严格比较,返回值)
$status = match($code) {
200 => "OK",
404 => "Not Found",
default => "Unknown",
};
// 循环
for ($i = 0; $i < 10; $i++) { ... }
while ($cond) { ... }
do { ... } while ($cond);
foreach ($arr as $item) { ... }
函数
// 基本函数
function add(int $a, int $b): int {
return $a + $b;
}
// 默认参数
function greet(string $name, string $greeting = "Hello"): string {
return "{$greeting}, {$name}!";
}
// 可变参数
function sum(int ...$nums): int {
return array_sum($nums);
}
// PHP 8.0+: Named Arguments
greet(name: "Alice", greeting: "Bonjour");
字符串
$name = "World";
// 双引号:变量插值
echo "Hello, {$name}!"; // Hello, World!
// 单引号:原样输出
echo 'Hello, $name!'; // Hello, $name!
// 常用函数
strlen("hello"); // 5
strpos("hello world", "world"); // 6
substr("hello", 0, 3); // "hel"
strtolower("Hello"); // "hello"
strtoupper("hello"); // "HELLO"
trim(" hi "); // "hi"
str_replace("a", "b", "banana"); // "bbnbnb"
include / require
// 包含文件(文件不存在时 warning)
include "header.php";
// 强制包含(文件不存在时 fatal error)
require "config.php";
// 建议:优先用 require_once / include_once 避免重复包含
require_once "database.php";
下一步
- PHP 语法详解 — 请求处理、Session、Cookie、表单
- PHP 8.x 新特性 — Enums、Fibers、Property Hooks、Pipe Operator
- PHP 文件操作 — 文件读写、上传、安全
- PHP 数据库 — PDO、MySQL、CRUD
- PHP 安全实践 — 密码存储、SQL 注入、XSS 防护
- PHP 表单 — HTML 表单元素与 PHP 交互