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. 如何通过广…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
全面解析数据库:从基础概念到前沿应用
在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
【实施指南】Android客户端HTTPS双向认证实施指南
🔐 一、所需准备材料 证书文件(6类核心文件) 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...
RabbitMQ 各类交换机
为什么要用交换机? 交换机用来路由消息。如果直发队列,这个消息就被处理消失了,那别的队列也需要这个消息怎么办?那就要用到交换机 交换机类型 1,fanout:广播 特点 广播所有消息:将消息…...
Easy Excel
Easy Excel 一、依赖引入二、基本使用1. 定义实体类(导入/导出共用)2. 写 Excel3. 读 Excel 三、常用注解说明(完整列表)四、进阶:自定义转换器(Converter) 其它自定义转换器没生效 Easy Excel在…...
