PHP基础语法讲解

大家好,我是程序员小羊!
前言:
PHP(Hypertext Preprocessor)是一种常用于网页开发的服务器端脚本语言,易于学习并且与 HTML 紧密结合。以下是
PHP 的基础语法详细讲解。
1. PHP 基础结构
1.1 PHP 脚本结构
PHP 代码通常嵌入到 HTML 文件中,并且用特殊的标记 <?php ?> 或短标记 <? ?> 包围:
<?phpecho "Hello, World!";
?>
<?php是 PHP 代码的起始标记,?>是结束标记。- PHP 代码可以放在 HTML 代码中间,服务器解析时只执行 PHP 代码,输出结果会生成标准 HTML 页面。
1.2 PHP 文件扩展名
PHP 文件通常以 .php 作为扩展名,例如 index.php。
2. 基本语法规则
2.1 注释
PHP 支持 C 和 C++ 风格的注释:
-
单行注释:
// 这是单行注释 # 这也是单行注释 -
多行注释:
/*这是多行注释可以有多行内容 */
2.2 大小写敏感
-
PHP 中的变量名是大小写敏感的。
$Variable = "Hello"; echo $variable; // 会出错,因为大小写不匹配 -
函数名和关键字则不区分大小写:
echo "hello"; // 输出 "hello" ECHO "world"; // 也能输出 "world"
2.3 分号
每个 PHP 语句必须以分号 (;) 结束。如果没有分号,会导致解析错误。
echo "Hello, World!"; // 正确
echo "Hello, World!" // 错误,缺少分号
3. 变量
3.1 变量声明
PHP 变量不需要显式声明类型,使用 $ 符号加上变量名来声明和使用变量:
$name = "Alice";
$age = 25;
- PHP 是弱类型语言,变量类型由赋给它的值自动决定。
- 变量名必须以字母或下划线
_开头,后面可以跟字母、数字或下划线。
3.2 变量类型
PHP 支持多种变量类型:
-
字符串(String):
$str = "Hello"; -
整数(Integer):
$int = 123; -
浮点数(Float):
$float = 12.34; -
布尔值(Boolean):
$isTrue = true; -
数组(Array):
$arr = array("apple", "banana", "cherry"); -
对象(Object):
PHP 通过类(class)创建对象,详细内容后续介绍。 -
NULL 类型:
变量未定义或被赋值为NULL时,它就是NULL类型:$var = null;
4. 常量
常量的值一旦定义就不能改变,使用 define() 函数定义:
define("PI", 3.14159);
echo PI; // 输出 3.14159
- 常量名通常使用大写字母表示,定义后不需要
$符号引用。
5. 字符串操作
5.1 字符串拼接
PHP 中使用 . 运算符拼接字符串:
$greeting = "Hello, " . "World!";
echo $greeting; // 输出 "Hello, World!"
5.2 字符串插值
使用双引号定义的字符串支持变量插值:
$name = "Alice";
echo "Hello, $name"; // 输出 "Hello, Alice"
单引号字符串不支持变量插值,变量会按字面量输出:
echo 'Hello, $name'; // 输出 "Hello, $name"
6. 运算符
6.1 算术运算符
PHP 支持常见的算术运算符:
$a = 10;
$b = 3;echo $a + $b; // 加法,输出 13
echo $a - $b; // 减法,输出 7
echo $a * $b; // 乘法,输出 30
echo $a / $b; // 除法,输出 3.3333
echo $a % $b; // 取余数,输出 1
6.2 赋值运算符
常用赋值运算符:
$a = 5; // 基本赋值
$a += 10; // 相当于 $a = $a + 10,结果是 15
$a -= 2; // 相当于 $a = $a - 2,结果是 13
$a *= 3; // 相当于 $a = $a * 3,结果是 39
6.3 比较运算符
比较两个值的关系:
$a == $b; // 相等
$a === $b; // 全等(值和类型相同)
$a != $b; // 不等
$a > $b; // 大于
$a < $b; // 小于
6.4 逻辑运算符
用于布尔运算:
$and = true && false; // 逻辑与,结果为 false
$or = true || false; // 逻辑或,结果为 true
$not = !true; // 逻辑非,结果为 false
7. 条件语句
7.1 if-else 语句
PHP 支持标准的条件语句 if-else 语句:
$age = 18;if ($age >= 18) {echo "You are an adult.";
} else {echo "You are a minor.";
}
7.2 elseif
多条件分支使用 elseif:
$grade = 85;if ($grade >= 90) {echo "A";
} elseif ($grade >= 80) {echo "B";
} else {echo "C";
}
7.3 三元运算符
简洁的条件语句可以使用三元运算符:
$result = ($age >= 18) ? "Adult" : "Minor";
8. 循环结构
8.1 while 循环
while 循环会在条件为真时重复执行代码块:
$i = 1;while ($i <= 5) {echo $i; // 输出 1 到 5$i++;
}
8.2 for 循环
for 循环适用于已知循环次数的情况:
for ($i = 1; $i <= 5; $i++) {echo $i; // 输出 1 到 5
}
8.3 foreach 循环
foreach 用于遍历数组:
$arr = array("apple", "banana", "cherry");foreach ($arr as $fruit) {echo $fruit; // 输出 "apple", "banana", "cherry"
}
9. 函数
9.1 定义和调用函数
PHP 函数使用 function 关键字定义:
function greet($name) {return "Hello, $name!";
}echo greet("Alice"); // 输出 "Hello, Alice!"
9.2 默认参数
函数参数可以有默认值:
function greet($name = "Guest") {return "Hello, $name!";
}echo greet(); // 输出 "Hello, Guest!"
9.3 可变参数
PHP 函数可以通过 ... 来接收可变数量的参数:
function sum(...$numbers) {return array_sum($numbers);
}echo sum(1, 2, 3); // 输出 6
10. 数组
10.1 索引数组
PHP 的数组类似于其他语言的列表或数组:
$fruits = array("apple", "banana", "cherry");echo $fruits[0]; // 输出 "apple"
10.2 关联数组
关联数组使用键值对:
$ages = array("Alice" => 25, "Bob" => 30);echo $ages["Alice"]; // 输出 25
11. 面向对象编程 (OOP)
PHP 支持面向对象编程,以下是简单的类和对象的示例:
class Person {public $name;public function __construct($name) {$this->name = $name;}public function greet() {return "Hello, " . $this->name;}
}$person = new Person("Alice");
echo $person->greet(); // 输出 "Hello, Alice"
12. 表单处理
PHP 通常用于处理网页表单,数据通过 $_GET 或 $_POST 数组传递:
// 表单提交方式是 POST
$name = $_POST['name'];
echo "Hello, $name";
13. 会话管理
PHP 提供 session 机制用于在用户间传递数据:
session_start();
$_SESSION['username'] = "Alice";
这就是 PHP 的基础语法,涵盖了从变量、条件语句、循环、数组、函数到面向对象编程等基本内容。
结尾
今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文


相关文章:
PHP基础语法讲解
大家好,我是程序员小羊! 前言: PHP(Hypertext Preprocessor)是一种常用于网页开发的服务器端脚本语言,易于学习并且与 HTML 紧密结合。以下是 PHP 的基础语法详细讲解。 1. PHP 基础结构 1.1 PHP 脚本结…...
【论文速看】DL最新进展20240923-长尾综述、人脸防伪、图像分割
目录 【长尾学习】【人脸防伪】【图像分割】 【长尾学习】 [2024综述] A Systematic Review on Long-Tailed Learning 论文链接:https://arxiv.org/pdf/2408.00483 长尾数据是一种特殊类型的多类不平衡数据,其中包含大量少数/尾部类别,这些类…...
device靶机详解
靶机下载地址 https://www.vulnhub.com/entry/unknowndevice64-1,293/ 靶机配置 主机发现 arp-scan -l 端口扫描 nmap -sV -A -T4 192.168.229.159 nmap -sS -Pn -A -p- -n 192.168.229.159 这段代码使用nmap工具对目标主机进行了端口扫描和服务探测。 -sS:使用…...
十四、SOA(在企业中的应用场景)
在企业中,**SOA(面向服务架构)**被广泛应用于多个场景,帮助企业提高灵活性、效率和业务响应能力。SOA通过分解企业系统中的功能模块,以服务的形式进行封装和集成,支持跨平台、跨系统的协同工作。以下是SOA在…...
单片机与PIC的区别:多方面对比
单片机与PIC的区别:多方面对比 在现代电子产品的设计中,单片机和PIC都是不可或缺的控制器。尽管它们在功能上有许多相似之处,但在设计、应用、优势和劣势等方面却有显著区别。今天,我们就来详细对比一下单片机和PIC。 1. 定义与…...
python新手的五个练习题
代码 # 1. 定义一个变量my_Number,将其设置为你的学号,然后输出到终端。 my_Number "20240001" # 假设你的学号是20240001 print("学号:", my_Number) # 2. 计算并输出到终端:两个数(例如3和5)的和、差、乘积和商。 num1 3 num2 5 print(&…...
Go语言并发编程之sync包详解
在当今多核时代,如何高效地利用并发是每个Go语言开发者都需要掌握的技能。Go语言为我们提供了丰富的并发编程工具,其中最基础也是最重要的就是sync包。本文将深入探讨sync包的各种并发原语,包括WaitGroup、Mutex、RWMutex、Cond、Once和Pool,并通过丰富的代码示例和详尽的解…...
函数题 6-10 阶乘计算升级版【PAT】
文章目录 题目函数接口定义裁判测试程序样例输入样例输出样例 题解解题思路完整代码AC代码 编程练习题目集目录 题目 要求实现一个打印非负整数阶乘的函数。 函数接口定义 void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过 1000 1000 10…...
java项目之基于springboot的医院资源管理系统源码
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的医院资源管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…...
Docker命令全解析:掌握容器化技术的基石
在容器化技术日益普及的今天,Docker作为其中的佼佼者,凭借其轻量级、可移植和易于管理的特性,赢得了广泛的关注和应用。而掌握Docker命令,则是深入理解和高效利用Docker的关键。本文将带您走进Docker命令的世界,从基础…...
2024.9.19
[ABC266F] Well-defined Path Queries on a Namori 题面翻译 题目描述 给定一张有 N N N 个点、 N N N 条边的简单连通无向图和 Q Q Q 次询问,对于每次询问,给定 x i , y i x_i,y_i xi,yi,表示两点的编号,请你回答第 x i …...
“跨链桥“的危害
跨链桥(Cross-Chain Bridges)是连接不同区块链网络的工具,允许用户在不同的区块链之间转移资产和数据。尽管跨链桥为区块链生态系统带来了许多便利,但它们也存在一些潜在的危害和风险。以下是一些主要的危害: 1. 安全…...
GO CronGin
文章目录 Robfig Cron介绍1. **安装 robfig/cron**2. **基本用法**示例:创建一个简单的定时任务3. **Cron 表达式**常用的 Cron 表达式示例:4. **添加和管理任务**5. **上下文支持**6. **使用场景**7. **高级用法**总结 Cron 在Gin中实践使用1. **安装 r…...
手机在网状态查询接口如何用C#进行调用?
一、什么是手机在网状态查询接口? 手机在网状态查询接口是利用实时数据来对手机号码在运营商网络中的状态进行查询的工具,包括正常使用状态、停机状态、不在网状态、预销户状态等。 二、手机在网状态查询适用哪些场景? 例如:商…...
Java面向对象特性与泛型:深入理解与应用
Java作为一种广泛使用的面向对象编程语言,提供了丰富的特性来支持面向对象编程(OOP)和泛型编程。本文将深入探讨Java的面向对象特性和泛型,以及它们在实际开发中的应用。 1. 面向对象特性 面向对象编程是一种编程范式࿰…...
Qwen2.5 本地部署的实战教程
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...
Oracle数据库pl/sql显式抛出异常
在Oracle PL/SQL中,显式地抛出异常(Raising Exceptions Explicitly)是一种控制程序流程和处理错误的重要机制。当你希望在某些特定条件下中断程序的执行,并通知调用者发生了错误或异常情况时,可以使用这种机制。下面是…...
Undet for sketchup 2023.3注册机 支持草图大师sketchup2021-2022-2023
1.Undet for sketchup 2023.3支持草图大师sketchup2021-2022-2023。支持机载雷达扫描、车载扫描还是地面扫描,对AEC行业用户来说,真正需要的是如何将这些数据快速处理为三维模型,这样才能将这些信息延展到BIM领域发挥效用。因此面对这些海量的…...
Java详细学习路线:从入门到精通的全方位指南
Java作为一种广泛使用的编程语言,以其跨平台性、强大的库支持和广泛的应用领域(如Web开发、Android开发、大数据处理等)而著称。对于初学者来说,制定一个清晰、系统的学习路线至关重要。以下是一个从Java基础到高级应用的详细学习…...
Spark 性能优化高频面试题及答案
目录 高频面试题及答案1. 如何通过调整内存管理来优化 Spark 性能?2. 如何通过数据持久化优化性能?3. 如何通过减少数据倾斜(Data Skew)问题来优化性能?4. 如何通过优化 Shuffle 操作提升性能?5. 如何通过广…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
