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. 如何通过广…...
CANN/asc-devkit Erfc接口文档
Erfc 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/cann/…...
3步掌握Vidupe:基于内容识别的智能视频去重终极指南
3步掌握Vidupe:基于内容识别的智能视频去重终极指南 【免费下载链接】vidupe Vidupe is a program that can find duplicate and similar video files. V1.211 released on 2019-09-18, Windows exe here: 项目地址: https://gitcode.com/gh_mirrors/vi/vidupe …...
上机器人真能省人吗,先看这几个车间实情
就以我自己的视角,给同样想推动自动化改造的工厂管理者们,聊聊这里面的门道和实在账。很多人问我,你们做自动化集成的是不是就爱忽悠老板砸钱上机器人?听着光鲜,最后落灰的“铁疙瘩”我见得多了。我是自动化老厂的二代…...
基于STM32MP25x构建工业级嵌入式Linux平台:Debian、XFCE、VNC与TSN集成实践
1. 项目概述:一个面向工业边缘的“全能”嵌入式Linux平台最近,我们团队基于STM32MP25x系列核心板,成功构建并发布了一套完整的Debian系统镜像。这个项目的目标非常明确:打造一个开箱即用、功能全面且高度适配工业边缘计算场景的嵌…...
5分钟学会:用SlopeCraft制作惊艳的Minecraft立体地图画终极指南
5分钟学会:用SlopeCraft制作惊艳的Minecraft立体地图画终极指南 【免费下载链接】SlopeCraft Map Pixel Art Generator for Minecraft 项目地址: https://gitcode.com/gh_mirrors/sl/SlopeCraft 你是否曾想将心爱的照片或艺术作品变成Minecraft世界中的立体艺…...
如何用ComfyUI-Impact-Pack实现专业级AI图像增强:解决细节缺失的终极方案
如何用ComfyUI-Impact-Pack实现专业级AI图像增强:解决细节缺失的终极方案 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. …...
深入RPMsg-Lite virtqueue:拆解异构多核芯片共享内存通信的‘黑盒子’
深入RPMsg-Lite virtqueue:拆解异构多核芯片共享内存通信的‘黑盒子’ 在现代异构多核芯片设计中,核间通信(IPC)的效率直接决定了系统整体性能。当你在调试一个基于NXP i.MX RT1170的双核系统时,是否曾好奇过ÿ…...
LabVIEW字符串处理保姆级教程:从长度计算到日期格式化,13个实例带你玩转
LabVIEW字符串处理实战指南:从基础操作到高级应用 在工业自动化、测试测量和仪器控制领域,LabVIEW作为图形化编程的标杆工具,其字符串处理能力直接影响着数据解析、通信协议实现等核心功能。本文将通过13个典型场景,系统讲解如何高…...
3分钟免费加速GitHub:告别龟速下载的终极解决方案
3分钟免费加速GitHub:告别龟速下载的终极解决方案 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 还在为GitHub的缓慢下…...
【Perplexity健身计划搜索实战指南】:20年AI搜索专家亲授3大精准检索心法,错过再等一年
更多请点击: https://codechina.net 第一章:Perplexity健身计划搜索实战指南导论 Perplexity 是一款以推理深度和引用可追溯性见长的 AI 搜索工具,特别适合需要结构化、证据支撑型信息检索的场景。在健身领域,用户常面临计划泛滥…...
