1. PHP 简介
PHP(Hypertext Preprocessor,超文本预处理器)是一种广泛使用的开源脚本语言,尤其适合 Web 开发。PHP 代码可以嵌入 HTML 中,在服务器端执行后生成动态网页。
2. 环境准备
在开始学习之前,需要搭建 PHP 运行环境。常见方案:
- 集成环境:XAMPP、WAMP、phpStudy 等,一键安装 Apache + PHP + MySQL。
- 单独安装:从 php.net 下载 PHP,配置环境变量。
- 命令行验证:在终端输入 php -v 查看版本信息。
3. 基本语法
3.1 PHP 标记
PHP 代码以 <?php 开始,以 ?> 结束:
<?php
echo "Hello, World!";
?>
如果文件只包含 PHP 代码,建议省略结束标记 ?>,避免意外输出空白字符。
3.2 注释
PHP 支持三种注释方式:
<?php
// 单行注释
# 这也是单行注释
/*
多行注释
可以跨越多行
*/
?>
3.3 输出语句
PHP 常用的输出方式有 echo 和 print:
<?php
echo "使用 echo 输出<br>";
print "使用 print 输出<br>";
// echo 可以输出多个参数
echo "参数1", "参数2", "参数3";
?>
4. 变量与常量
4.1 变量
PHP 变量以 $ 符号开头,变量名区分大小写:
<?php
$name = "张三";
$age = 25;
$height = 1.75;
$isStudent = true;
echo "姓名:$name,年龄:$age";
?>
4.2 变量作用域
PHP 有四种变量作用域:
- 局部变量:函数内定义的变量
- 全局变量:函数外定义的变量
- 静态变量:函数内用 static 声明的变量
- 参数变量:函数参数
<?php
$globalVar = "全局变量";
function test() {
global $globalVar; // 使用 global 关键字访问全局变量
echo $globalVar;
}
test();
?>
4.3 常量
使用 define() 函数或 const 关键字定义常量:
<?php
define("SITE_NAME", "我的博客");
const VERSION = "1.0.0";
echo SITE_NAME;
echo VERSION;
?>
5. 数据类型
PHP 支持以下数据类型:
| String | 字符串 | "Hello" |
| Integer | 整数 | 42 |
| Float | 浮点数 | 3.14 |
| Boolean | 布尔值 | true / false |
| Array | 数组 | [1, 2, 3] |
| Object | 对象 | new ClassName() |
| NULL | 空值 | null |
<?php
// 类型检查
$num = 10;
var_dump($num); // int(10)
$str = "10";
var_dump($str); // string(2) "10"
?>
6. 运算符
6.1 算术运算符
<?php
$a = 10;
$b = 3;
echo $a + $b; // 13
echo $a – $b; // 7
echo $a * $b; // 30
echo $a / $b; // 3.333…
echo $a % $b; // 1
echo $a ** $b; // 1000(幂运算)
?>
6.2 比较运算符
<?php
$a = 10;
$b = "10";
var_dump($a == $b); // true(值相等)
var_dump($a === $b); // false(值和类型都相等)
var_dump($a != $b); // false
var_dump($a !== $b); // true
var_dump($a > 5); // true
?>
6.3 逻辑运算符
<?php
$a = true;
$b = false;
var_dump($a && $b); // false(与)
var_dump($a || $b); // true(或)
var_dump(!$a); // false(非)
?>
7. 流程控制
7.1 条件语句
<?php
$score = 85;
if ($score >= 90) {
echo "优秀";
} elseif ($score >= 60) {
echo "及格";
} else {
echo "不及格";
}
// switch 语句
$day = "Monday";
switch ($day) {
case "Monday":
echo "星期一";
break;
case "Friday":
echo "星期五";
break;
default:
echo "其他";
}
?>
7.2 循环语句
<?php
// for 循环
for ($i = 1; $i <= 5; $i++) {
echo "第 $i 次循环<br>";
}
// while 循环
$j = 1;
while ($j <= 5) {
echo "while: $j<br>";
$j++;
}
// foreach 循环(遍历数组)
$colors = ["red", "green", "blue"];
foreach ($colors as $color) {
echo $color . "<br>";
}
?>
8. 数组
8.1 索引数组
<?php
// 创建数组
$fruits = ["苹果", "香蕉", "橙子"];
// 访问元素
echo $fruits[0]; // 苹果
// 添加元素
$fruits[] = "葡萄";
// 遍历数组
foreach ($fruits as $fruit) {
echo $fruit . "<br>";
}
?>
8.2 关联数组
<?php
$user = [
"name" => "张三",
"age" => 25,
"email" => "zhangsan@example.com"
];
echo $user["name"]; // 张三
// 遍历关联数组
foreach ($user as $key => $value) {
echo "$key: $value<br>";
}
?>
8.3 常用数组函数
<?php
$numbers = [3, 1, 4, 1, 5];
echo count($numbers); // 5(元素个数)
sort($numbers); // 排序
print_r($numbers); // 打印数组结构
$merged = array_merge([1, 2], [3, 4]); // 合并数组
?>
9. 函数
9.1 函数定义与调用
<?php
function greet($name, $greeting = "你好") {
return "$greeting,$name!";
}
echo greet("张三"); // 你好,张三!
echo greet("李四", "早上好"); // 早上好,李四!
?>
9.2 可变参数
<?php
function sum(…$numbers) {
return array_sum($numbers);
}
echo sum(1, 2, 3, 4, 5); // 15
?>
9.3 匿名函数
<?php
$multiply = function ($a, $b) {
return $a * $b;
};
echo $multiply(3, 4); // 12
// 箭头函数(PHP 7.4+)
$add = fn($a, $b) => $a + $b;
echo $add(2, 3); // 5
?>
10. 字符串操作
<?php
$str = "Hello, PHP World!";
echo strlen($str); // 18(字符串长度)
echo strtoupper($str); // 转大写
echo strtolower($str); // 转小写
echo str_replace("PHP", "编程", $str); // 替换
echo substr($str, 0, 5); // Hello(截取)
// 字符串拼接
$firstName = "张";
$lastName = "三";
$fullName = $firstName . $lastName;
echo $fullName; // 张三
?>
11. 表单处理
11.1 GET 请求
<?php
// 处理 GET 请求
if (isset($_GET["name"])) {
$name = $_GET["name"];
echo "你好,$name!";
}
?>
11.2 POST 请求
<?php
// 处理 POST 请求
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
// 处理登录逻辑
}
?>
12. 面向对象编程
12.1 类与对象
<?php
class Car {
// 属性
public $brand;
private $speed = 0;
// 构造函数
public function __construct($brand) {
$this->brand = $brand;
}
// 方法
public function accelerate($amount) {
$this->speed += $amount;
return $this->speed;
}
public function getSpeed() {
return $this->speed;
}
}
// 创建对象
$myCar = new Car("Toyota");
echo $myCar->brand; // Toyota
echo $myCar->accelerate(60); // 60
?>
12.2 继承
<?php
class Animal {
protected $name;
public function __construct($name) {
$this->name = $name;
}
public function speak() {
return "动物叫声";
}
}
class Dog extends Animal {
public function speak() {
return "汪汪!";
}
}
$dog = new Dog("旺财");
echo $dog->speak(); // 汪汪!
?>
13. 错误处理
<?php
// try-catch 异常处理
try {
$num = 10;
if ($num < 20) {
throw new Exception("数字太小");
}
echo $num;
} catch (Exception $e) {
echo "捕获异常:" . $e->getMessage();
} finally {
echo "无论是否异常都会执行";
}
?>
14. 常用内置函数
<?php
// 日期时间
echo date("Y-m-d H:i:s"); // 当前时间
// 数学函数
echo max(1, 5, 3); // 5
echo min(1, 5, 3); // 1
echo round(3.7); // 4
echo rand(1, 100); // 随机数
// 数组函数
$arr = [1, 2, 3];
echo count($arr); // 3
echo in_array(2, $arr) ? "存在" : "不存在"; // 存在
// 字符串函数
echo trim(" Hello "); // 去除空格
echo strpos("Hello", "l"); // 2(查找位置)
?>




