PHP 语法(详细指南)
PHP(Hypertext Preprocessor)是一种服务器端脚本语言,专为 Web 开发而设计,并可嵌入 HTML。以下是 PHP 语法的详细介绍,包括基本语法、变量、数据类型、控制结构、函数、面向对象编程等内容。
1. PHP 基本语法
1.1 PHP 代码结构
PHP 代码通常嵌入在 HTML 中,使用 <?php ... ?> 标签:
<!DOCTYPE html>
<html>
<head>
<title>PHP 测试</title>
</head>
<body>
<?php
echo "Hello, PHP!";
?>
</body>
</html>
1.2 单独的 PHP 脚本
PHP 代码也可以写在独立的 .php 文件中:
<?php
echo "Hello, PHP!";
?>
1.3 注释
PHP 支持三种注释方式:
// 这是单行注释
# 这也是单行注释
/*
这是多行注释
*/
2. 变量与数据类型
2.1 变量定义
PHP 变量以 $ 开头,区分大小写:
<?php
$name = "Alice";
$age = 25;
echo "姓名: $name, 年龄: $age";
?>
2.2 数据类型
PHP 是 动态类型 语言,支持以下数据类型:
<?php
$string = "Hello"; // 字符串
$integer = 10; // 整数
$float = 3.14; // 浮点数
$boolean = true; // 布尔值
$array = [1, 2, 3]; // 数组
$nullVar = null; // 空值
?>
2.3 变量类型转换
PHP 可自动转换数据类型:
<?php
$num = "100";
$sum = $num + 50; // 自动转换为整数
echo $sum; // 输出 150
?>
强制转换:
<?php
$var = (int) "123"; // 转换为整数
?>
3. 控制结构
3.1 条件语句
if 语句
<?php
$age = 18;
if ($age >= 18) {
echo "成年人";
} else {
echo "未成年";
}
?>
switch 语句
<?php
$color = "red";
switch ($color) {
case "red":
echo "红色";
break;
case "blue":
echo "蓝色";
break;
default:
echo "未知颜色";
}
?>
3.2 循环语句
for 循环
<?php
for ($i = 0; $i < 5; $i++) {
echo "当前值: $i <br>";
}
?>
while 循环
<?php
$i = 0;
while ($i < 5) {
echo "值: $i <br>";
$i++;
}
?>
foreach 循环(用于数组)
<?php
$arr = ["苹果", "香蕉", "橘子"];
foreach ($arr as $fruit) {
echo "$fruit <br>";
}
?>
4. 函数
PHP 允许用户定义函数:
<?php
function greet($name) {
return "Hello, $name!";
}
echo greet("Alice");
?>
带默认参数:
<?php
function greet($name = "Guest") {
return "Hello, $name!";
}
echo greet(); // Hello, Guest!
?>
返回多个值:
<?php
function getInfo() {
return ["Alice", 25];
}
list($name, $age) = getInfo();
echo "姓名: $name, 年龄: $age";
?>
5. 数组
5.1 索引数组
<?php
$arr = ["苹果", "香蕉", "橘子"];
echo $arr[0]; // 苹果
?>
5.2 关联数组
<?php
$user = ["name" => "Alice", "age" => 25];
echo $user["name"]; // Alice
?>
5.3 多维数组
<?php
$users = [
["name" => "Alice", "age" => 25],
["name" => "Bob", "age" => 30]
];
echo $users[1]["name"]; // Bob
?>
6. 面向对象编程(OOP)
6.1 定义类
<?php
class Person {
public $name;
public $age;
function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
function greet() {
return "Hello, my name is $this->name.";
}
}
$person = new Person("Alice", 25);
echo $person->greet();
?>
6.2 继承
<?php
class Employee extends Person {
public $salary;
function __construct($name, $age, $salary) {
parent::__construct($name, $age);
$this->salary = $salary;
}
}
$emp = new Employee("Bob", 30, 5000);
echo $emp->greet();
?>
7. 超全局变量
7.1 $_GET 和 $_POST
<?php
// 获取 GET 参数
$name = $_GET['name'];
echo "Hello, $name!";
?>
表单 POST 处理:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
echo "提交的名字: $name";
}
?>
HTML 表单:
<form method="post">
名字: <input type="text" name="name">
<input type="submit">
</form>
8. 文件操作
8.1 读取文件
<?php
$content = file_get_contents("test.txt");
echo $content;
?>
8.2 写入文件
<?php
file_put_contents("test.txt", "Hello, PHP!");
?>
9. 错误处理
<?php
try {
if (!file_exists("test.txt")) {
throw new Exception("文件不存在");
}
} catch (Exception $e) {
echo "错误: " . $e->getMessage();
}
?>
10. 进一步学习
- PHP 官方手册:https://www.php.net/manual/en/
- PHP 面向对象编程:https://www.php.net/manual/en/language.oop5.php
- PHP 数组:https://www.php.net/manual/en/language.types.array.php
更多php详细内容请关注其他相关文章!