php基础语法
变量与数据类型:
$name = "minato"; // 字符串
$age = 25; // 整数
$price = 19.99; // 浮点数
$isStudent = true; // 布尔值字符串操作:
$greeting = "hello, " . $name . "!"; // 拼接
$length = strlen($greeting); // 长度
$upper = strtoupper($greeting); // 转大写常量与运算符:
define("PI", 3.14); // 定义常量
$result = (10 + 5) * 2; // 算术运算
$isAdult = ($age >= 18); // 比较运算
| 类型 | 作用 | 示例 |
|---|---|---|
| 单引号 | 纯字符串,不解析变量和转义字符(除\'和\\) |
echo 'Cost: $price'; // 输出 Cost: $price |
| 双引号 | 解析变量和转义字符(\n, \t等) |
echo "Cost: $price"; // 输出 Cost: 10 |
| 反引号 | 执行系统命令并返回输出 | $output = ls -l; echo $output; |
双引号变量解析
$user = 'John'; |
可变变量
$varName = 'email'; |
定界符
处理多行字符串的优雅方式:
Heredoc(双引号效果):
$html = <<<HTML |
Nowdoc(单引号效果):
$sql = <<<'SQL' |
其他运算符
1. 双目运算符:
// 算术运算 |
2. 三目运算符:
// 基本用法 |
php流程控制
条件语句:
if ($age < 18) {
echo "未成年人";
} elseif ($age >= 60) {
echo "老年人";
} else {
echo "成年人";
}循环结构:
// for循环
for ($i = 1; $i <= 5; $i++) {
echo "第{$i}次循环<br>";
}
// while循环
$count = 0;
while ($count < 3) {
echo "Count: $count<br>";
$count++;
}
// switch语句
$day = date('N'); // 1-7 (周一至周日)
switch($day) {
case 1:
case 2:
case 3:
case 4:
case 5:
echo '工作日';
break;
case 6:
echo '周六';
break;
case 7:
echo '周日';
break;
default:
echo '无效日期';
}
程序终止控制(exit/die)
| 方法 | 作用 | 示例 |
|---|---|---|
| exit() | 终止脚本执行,可返回状态码或消息 | exit; exit('错误发生'); exit(1); |
| die() | exit的别名,功能完全相同 | die('数据库连接失败'); |
// 文件不存在时终止 |
php函数与数组
自定义函数:
function calculateArea($width, $height) {
return $width * $height;
}
echo "面积: " . calculateArea(5, 10); // 输出50数组操作:
// 索引数组
$fruits = ["苹果", "香蕉", "橙子"];
echo $fruits[1]; // 输出"香蕉"
// 关联数组
$user = [
"name" => "李四",
"email" => "lisi@example.com",
"age" => 30
];
echo $user["email"]; // 输出邮箱
// 遍历数组
foreach ($fruits as $fruit) {
echo $fruit . "<br>";
}
一、数组类型详解
1. 索引数组 vs 关联数组
// 索引数组(自动数字键) |
2. 多维数组
$company = [ |
二、数组创建与初始化
1. 多种创建方式
// 方括号语法(推荐) |
2. 特殊键名处理
$specialKeys = [ |
三、数组操作与遍历
1. 基本操作
$colors = ['red', 'green', 'blue']; |
2. 遍历方法
// 1. foreach循环(最常用) |
四、数组函数大全
1. 元素操作函数
| 函数 | 描述 | 示例 |
|---|---|---|
array_push() |
末尾添加元素 | array_push($arr, 'new') |
array_pop() |
移除末尾元素 | $last = array_pop($arr) |
array_unshift() |
开头添加元素 | array_unshift($arr, 'first') |
array_shift() |
移除开头元素 | $first = array_shift($arr) |
array_splice() |
添加/移除元素 | array_splice($arr, 1, 2, ['new1','new2']) |
2. 键值操作函数
| 函数 | 描述 | 示例 |
|---|---|---|
array_keys() |
获取所有键名 | $keys = array_keys($user) |
array_values() |
获取所有值 | $values = array_values($user) |
array_key_exists() |
检查键是否存在 | if (array_key_exists('email', $user)) |
in_array() |
检查值是否存在 | if (in_array('John', $user)) |
array_search() |
搜索值返回键 | $key = array_search('John', $user) |
3. 数组处理函数
| 函数 | 描述 | 示例 |
|---|---|---|
array_map() |
应用回调到元素 | $squared = array_map(fn($n) => $n**2, [1,2,3]) |
array_filter() |
过滤数组元素 | $evens = array_filter([1,2,3,4], fn($n) => $n%2==0) |
array_reduce() |
迭代简化数组 | $sum = array_reduce([1,2,3], fn($carry, $n) => $carry+$n, 0) |
array_walk() |
应用回调到元素 | array_walk($user, fn($v, $k) => echo "$k: $v\n") |
4. 数组组合函数
| 函数 | 描述 | 示例 |
|---|---|---|
array_merge() |
合并数组 | $combined = array_merge($arr1, $arr2) |
array_replace() |
替换数组值 | $replaced = array_replace($base, $updates) |
array_combine() |
创建关联数组 | $assoc = array_combine(['name','age'], ['John',30]) |
array_flip() |
交换键值 | $flipped = array_flip($user) |
array_unique() |
移除重复值 | $unique = array_unique([1,2,2,3]) |
5. 数组切片与分块
| 函数 | 描述 | 示例 |
|---|---|---|
array_slice() |
截取数组片段 | $part = array_slice($arr, 2, 3) |
array_chunk() |
分割数组块 | $chunks = array_chunk($arr, 4) |
array_column() |
提取列数据 | $names = array_column($users, 'name') |
php面向对象编程
class User { |
php表单处理
<!-- form.html --> |
// process.php |
php数据库操作
|
避坑指南
安全陷阱:
// 危险!直接输出用户输入
echo $_GET['input'];
// 修复方案:
echo htmlspecialchars($_GET['input']); // 转义HTML
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL); // 验证邮箱常见错误处理:
// 开启错误报告(开发环境)
ini_set('display_errors', 1);
error_reporting(E_ALL);
// 生产环境应记录错误而非显示
ini_set('log_errors', 1);
ini_set('error_log', '/path/to/php-error.log');
