简介
PHP(Hypertext Preprocessor,超文本预处理器)是一种开源的服务器端脚本语言,主要用于 Web 开发,可嵌入 HTML 中直接运行,也支持命令行模式。以下是 PHP 核心基础知识点,帮助快速入门:
一、PHP 环境搭建
要运行 PHP 代码,需搭建
Web 服务器 + PHP 解析器 + 数据库(可选)
环境,推荐两种方式:
- 1. 集成环境(新手首选)
- XAMPP(跨平台:Windows/Mac/Linux):包含 Apache 服务器、PHP、MySQL、phpMyAdmin(数据库管理工具)。
- WAMP(Windows 专属):Windows + Apache + MySQL + PHP。
- MAMP(Mac 专属):Mac + Apache + MySQL + PHP。
安装后启动 Apache 服务,PHP 文件放入
htdocs(XAMPP)或
www(WAMP/MAMP)目录,通过
http://localhost/文件名.php访问。
创建文件
phpinfo.php,写入以下代码:
php
<?php
phpinfo(); // 输出 PHP 环境信息
?>访问
http://localhost/phpinfo.php,若显示 PHP 版本、配置等信息,则环境搭建成功。
二、PHP 基本语法
- 标记风格(嵌入 HTML )
- 语句结束符
- 注释
PHP 代码需用标记包裹,最常用
<?php ... ?>(兼容所有环境),其他标记(如
<? ... ?>、
<% ... %>)需配置
php.ini启用,不推荐:
html
预览
<!DOCTYPE html>
<html>
<body>
<h1>PHP 入门</h1>
<?php
echo "Hello, PHP!"; // 输出内容到页面
?>
</body>
</html>
PHP 语句必须以分号
;结束(最后一条语句可省略,但推荐统一添加):
php
<?php
echo "Hello";
echo "World"; // 正确
echo "PHP" // 不推荐(省略分号)
?>
注释不被解析执行,用于说明代码,支持三种方式:
php
<?php
// 单行注释(// 后内容)
# 单行注释(# 后内容,较少用)
/*
多行注释
跨越多行
*/
?>
三、变量与数据类型
- 变量规则
- 核心数据类型
- 变量作用域
变量以
$开头,后跟字母、数字、下划线(不能以数字开头)。
区分大小写(
$name和
$Name是两个不同变量)。
无需声明类型,直接赋值即可(弱类型语言)。
php
<?php
$name = "张三"; // 字符串变量
$age = 20; // 整数变量
$score = 95.5; // 浮点数变量
$isStudent = true; // 布尔变量
?>
PHP 支持 8 种原始类型,核心常用以下 5 种:
类型 说明 示例
字符串(string) 文本数据,用单引号
'或双引号
"包裹
'Hello'、"PHP $name"(双引号解析变量)
整数(int) 正负整数、0(支持十进制、八进制、十六进制)
10、-5、012(八进制 = 10)、
0x0A(十六进制 = 10)
浮点数(float) 小数或科学计数法
3.14、1.2e3(=1200)
布尔(bool) 只有
true(真)和
false(假)
$isOk = true;数组(array) 存储多个值的集合
$arr = [1, 2, "a"];
变量的可访问范围,核心分为 3 种:
局部变量:函数内部定义,仅函数内可访问。
全局变量:函数外部定义,需用
global关键字或
$GLOBALS数组在函数内访问。
超全局变量:系统预定义,任何范围均可直接访问(常用:
$_GET、$_POST、$_SESSION、$_COOKIE)。示例:
php
<?php
$globalVar = "全局变量"; // 全局变量
function test() {
$localVar = "局部变量"; // 局部变量
global $globalVar; // 声明使用全局变量
echo $localVar; // 正确(函数内)
echo $globalVar; // 正确(已声明 global)
echo $_GET['name']; // 超全局变量(无需声明)
}
test();
echo $localVar; // 错误(局部变量不可外部访问)
?>
四、运算符
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
用于数值计算:
+(加)、-(减)、*(乘)、/(除)、%(取余)、++(自增)、--(自减)php
<?php
$a = 10;
$b = 3;
echo $a + $b; // 13
echo $a % $b; // 1(10 除以 3 余 1)
echo $a++; // 10(先输出再自增)
echo ++$a; // 12(先自增再输出)
?>
给变量赋值:
=、+=、-=、*=、/=php
<?php
$a = 5;
$a += 3; // 等价于 $a = $a + 3 → 8
$a *= 2; // 等价于 $a = $a * 2 → 16
?>
用于判断条件(返回布尔值
true/false):==(值相等)、===(值和类型都相等)、!=(不等)、!==(值或类型不等)、>、<、>=、<=php
<?php
echo 5 == "5"; // true(值相等,类型忽略)
echo 5 === "5"; // false(类型不同:int vs string)
echo 10 != 5; // true
?>
用于逻辑判断(返回布尔值):
&&(与)、||(或)、!(非)php
<?php
$age = 20;
$score = 80;
if ($age >= 18 && $score >= 60) {
echo "合格"; // 满足两个条件才执行
}
if (!$score < 60) {
echo "及格"; // 逻辑非:等价于 $score >= 60
}
?>
五、流程控制
- 条件语句
- 根据条件执行不同代码块:
- (1)if-else
php<?php $score = 75; if ($score >= 90) { echo "优秀"; } elseif ($score >= 60) { echo "及格"; } else { echo "不及格"; } ?> - (2)switch-case 适用于多值判断:
php<?php $grade = "B"; switch ($grade) { case "A": echo "优秀"; break; // 跳出 switch,避免继续执行下一个 case case "B": echo "良好"; break; default: echo "其他"; } ?> - 循环语句
- 重复执行代码块:
- (1)for 循环(适合已知循环次数)
php<?php // 循环 1-5 for ($i = 1; $i <= 5; $i++) { echo $i . " "; // 输出:1 2 3 4 5 } ?> - (2)while 循环(适合未知循环次数)
php<?php $i = 1; while ($i <= 5) { echo $i . " "; $i++; } ?> - (3)foreach 循环(遍历数组专用)
php<?php $arr = ["苹果", "香蕉", "橙子"]; // 遍历值 foreach ($arr as $value) { echo $value . " "; // 输出:苹果 香蕉 橙子 } // 遍历键和值 foreach ($arr as $key => $value) { echo $key . ":" . $value . " "; // 输出:0:苹果 1:香蕉 2:橙子 } ?>
六、数组
数组是 PHP 中最常用的数据结构,用于存储多个有序 / 无序值,分为索引数组(数字键)和关联数组(字符串键)。
1. 数组定义
php
<?php
// 索引数组(默认键为 0、1、2...)
$fruit = ["苹果", "香蕉", "橙子"];
// 关联数组(自定义字符串键)
$user = [
"name" => "张三",
"age" => 20,
"score" => 90
];
?>
2. 数组访问与更改
php
<?php
$fruit = ["苹果", "香蕉", "橙子"];
echo $fruit[0]; // 访问索引 0 的值 → 苹果
$fruit[1] = "葡萄"; // 修改索引 1 的值 → 数组变为 ["苹果", "葡萄", "橙子"]
$user = ["name" => "张三", "age" => 20];
echo $user["name"]; // 访问关联键的值 → 张三
$user["age"] = 21; // 修改关联键的值
?>
3. 常用数组函数
| 函数 | 说明 | 示例 |
|---|---|---|
| 获取数组长度 | |
|
| 向数组尾部添加元素 | |
|
| 删除数组尾部元素 | |
|
| 获取数组所有键(索引 / 关联) | |
|
| 获取数组所有值 | |
七、函数
函数是可重用的代码段,封装特定功能,提升代码复用率。
1. 自定义函数
语法:
function 函数名(参数1, 参数2...) { 代码块; return 返回值; }
php
<?php
// 定义求和函数
function sum($a, $b) {
$result = $a + $b;
return $result; // 返回计算结果
}
// 调用函数
$total = sum(5, 3);
echo $total; // 输出:8
?>
2. 函数参数默认值
php
<?php
// 第二个参数默认值为 10
function add($a, $b = 10) {
return $a + $b;
}
echo add(5); // 5 + 10 = 15
echo add(5, 20); // 5 + 20 = 25
?>
八、输出与输入
1. 输出内容
:输出一个或多个字符串(无返回值,效率高)。echo
:输出单个字符串(返回 1,用法与 echo 类似,较少使用)。print
:打印数组、对象等复杂数据(便于调试)。print_r()
:打印变量的类型和值(调试常用)。var_dump()
示例:
php
<?php
echo "Hello", " ", "PHP"; // 多参数输出 → Hello PHP
$arr = [1, 2, 3];
print_r($arr); // 输出:Array ( [0] => 1 [1] => 2 [2] => 3 )
var_dump($arr); // 输出:array(3) { [0]=>int(1) [1]=>int(2) [2]=>int(3) }
?>
2. 接收用户输入
通过超全局变量接收客户端提交的数据:
:接收 URL 传递的参数(显式,适合少量数据)。$_GET
:接收表单$_POST
method="post"
提交的参数(隐式,适合敏感数据如密码)。
示例(接收 GET 参数):
URL:
http://localhost/test.php?name=张三&age=20
php
<?php
$name = $_GET['name']; // 接收 name 参数 → 张三
$age = $_GET['age']; // 接收 age 参数 → 20
echo "姓名:$name,年龄:$age";
?>
示例(接收 POST 参数):
HTML 表单:
html 预览<form method="post" action="test.php"> 姓名:<input type="text" name="name"><br> 年龄:<input type="text" name="age"><br> <input type="submit" value="提交"> </form>
PHP 处理(test.php):
php
<?php
$name = $_POST['name'];
$age = $_POST['age'];
echo "提交成功:姓名=$name,年龄=$age";
?>
九、文件包含
通过
include 或 require 引入其他 PHP 文件,实现代码复用(如公共头部、配置文件)。
1. 区别
:引入失败时报警告(E_WARNING),脚本继续执行。include
:引入失败时报致命错误(E_COMPILE_ERROR),脚本停止执行(推荐使用,确保依赖文件存在)。require
2. 示例
创建
header.php (公共头部):
php
<?php
echo "<h1>网站标题</h1>";
echo "<nav>首页 | 关于我们 | 联系我们</nav>";
?>
在其他文件中引入:
php
<?php
require "header.php"; // 引入公共头部
echo "<p>首页内容...</p>";
?>
十、常见注意事项
- 编码统一:PHP 文件编码、HTML 页面编码、数据库编码需一致(推荐 UTF-8),避免中文乱码。
- 安全问题:
- 接收用户输入时需过滤(如
防 XSS 攻击)。htmlspecialchars() - 数据库操作需用预处理(防 SQL 注入)。
- 接收用户输入时需过滤(如
- 错误调试:开发环境可在
中开启错误显示(php.ini
),生产环境关闭。display_errors = On - 变量命名:遵循规范(如小写字母 + 下划线:
),提高可读性。$user_name
十一、下一步学习方向
- 字符串处理(
、strlen()
、正则表达式)。str_replace() - 面向对象编程(类、对象、继承、多态)。
- 数据库操作(MySQLi 或 PDO 连接数据库,增删改查)。
- 会话管理(
登录状态保持、session
存储)。cookie - 框架学习(Laravel、ThinkPHP 等,提高开发效率)。
通过以上基础知识点,可实现简单的 PHP 动态网页(如用户注册登录、数据展示等)。多写代码练习(如遍历数组、表单提交、文件包含),能快速掌握核心用法!


雷达卡


京公网安备 11010802022788号







