当前位置: 首页 > news >正文

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基础语法讲解

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; PHP&#xff08;Hypertext Preprocessor&#xff09;是一种常用于网页开发的服务器端脚本语言&#xff0c;易于学习并且与 HTML 紧密结合。以下是 PHP 的基础语法详细讲解。 1. PHP 基础结构 1.1 PHP 脚本结…...

【论文速看】DL最新进展20240923-长尾综述、人脸防伪、图像分割

目录 【长尾学习】【人脸防伪】【图像分割】 【长尾学习】 [2024综述] A Systematic Review on Long-Tailed Learning 论文链接&#xff1a;https://arxiv.org/pdf/2408.00483 长尾数据是一种特殊类型的多类不平衡数据&#xff0c;其中包含大量少数/尾部类别&#xff0c;这些类…...

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&#xff1a;使用…...

十四、SOA(在企业中的应用场景)

在企业中&#xff0c;**SOA&#xff08;面向服务架构&#xff09;**被广泛应用于多个场景&#xff0c;帮助企业提高灵活性、效率和业务响应能力。SOA通过分解企业系统中的功能模块&#xff0c;以服务的形式进行封装和集成&#xff0c;支持跨平台、跨系统的协同工作。以下是SOA在…...

单片机与PIC的区别:多方面对比

单片机与PIC的区别&#xff1a;多方面对比 在现代电子产品的设计中&#xff0c;单片机和PIC都是不可或缺的控制器。尽管它们在功能上有许多相似之处&#xff0c;但在设计、应用、优势和劣势等方面却有显著区别。今天&#xff0c;我们就来详细对比一下单片机和PIC。 1. 定义与…...

python新手的五个练习题

代码 # 1. 定义一个变量my_Number,将其设置为你的学号&#xff0c;然后输出到终端。 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是用户传入的参数&#xff0c;其值不超过 1000 1000 10…...

java项目之基于springboot的医院资源管理系统源码

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的医院资源管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…...

Docker命令全解析:掌握容器化技术的基石

在容器化技术日益普及的今天&#xff0c;Docker作为其中的佼佼者&#xff0c;凭借其轻量级、可移植和易于管理的特性&#xff0c;赢得了广泛的关注和应用。而掌握Docker命令&#xff0c;则是深入理解和高效利用Docker的关键。本文将带您走进Docker命令的世界&#xff0c;从基础…...

2024.9.19

[ABC266F] Well-defined Path Queries on a Namori 题面翻译 题目描述 给定一张有 N N N 个点、 N N N 条边的简单连通无向图和 Q Q Q 次询问&#xff0c;对于每次询问&#xff0c;给定 x i , y i x_i,y_i xi​,yi​&#xff0c;表示两点的编号&#xff0c;请你回答第 x i …...

“跨链桥“的危害

跨链桥&#xff08;Cross-Chain Bridges&#xff09;是连接不同区块链网络的工具&#xff0c;允许用户在不同的区块链之间转移资产和数据。尽管跨链桥为区块链生态系统带来了许多便利&#xff0c;但它们也存在一些潜在的危害和风险。以下是一些主要的危害&#xff1a; 1. 安全…...

GO CronGin

文章目录 Robfig Cron介绍1. **安装 robfig/cron**2. **基本用法**示例&#xff1a;创建一个简单的定时任务3. **Cron 表达式**常用的 Cron 表达式示例&#xff1a;4. **添加和管理任务**5. **上下文支持**6. **使用场景**7. **高级用法**总结 Cron 在Gin中实践使用1. **安装 r…...

手机在网状态查询接口如何用C#进行调用?

一、什么是手机在网状态查询接口&#xff1f; 手机在网状态查询接口是利用实时数据来对手机号码在运营商网络中的状态进行查询的工具&#xff0c;包括正常使用状态、停机状态、不在网状态、预销户状态等。 二、手机在网状态查询适用哪些场景&#xff1f; 例如&#xff1a;商…...

Java面向对象特性与泛型:深入理解与应用

Java作为一种广泛使用的面向对象编程语言&#xff0c;提供了丰富的特性来支持面向对象编程&#xff08;OOP&#xff09;和泛型编程。本文将深入探讨Java的面向对象特性和泛型&#xff0c;以及它们在实际开发中的应用。 1. 面向对象特性 面向对象编程是一种编程范式&#xff0…...

Qwen2.5 本地部署的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...

Oracle数据库pl/sql显式抛出异常

在Oracle PL/SQL中&#xff0c;显式地抛出异常&#xff08;Raising Exceptions Explicitly&#xff09;是一种控制程序流程和处理错误的重要机制。当你希望在某些特定条件下中断程序的执行&#xff0c;并通知调用者发生了错误或异常情况时&#xff0c;可以使用这种机制。下面是…...

Undet for sketchup 2023.3注册机 支持草图大师sketchup2021-2022-2023

1.Undet for sketchup 2023.3支持草图大师sketchup2021-2022-2023。支持机载雷达扫描、车载扫描还是地面扫描&#xff0c;对AEC行业用户来说&#xff0c;真正需要的是如何将这些数据快速处理为三维模型&#xff0c;这样才能将这些信息延展到BIM领域发挥效用。因此面对这些海量的…...

Java详细学习路线:从入门到精通的全方位指南

Java作为一种广泛使用的编程语言&#xff0c;以其跨平台性、强大的库支持和广泛的应用领域&#xff08;如Web开发、Android开发、大数据处理等&#xff09;而著称。对于初学者来说&#xff0c;制定一个清晰、系统的学习路线至关重要。以下是一个从Java基础到高级应用的详细学习…...

Spark 性能优化高频面试题及答案

目录 高频面试题及答案1. 如何通过调整内存管理来优化 Spark 性能&#xff1f;2. 如何通过数据持久化优化性能&#xff1f;3. 如何通过减少数据倾斜&#xff08;Data Skew&#xff09;问题来优化性能&#xff1f;4. 如何通过优化 Shuffle 操作提升性能&#xff1f;5. 如何通过广…...

【洛谷】AT_abc371_e [ABC371E] I Hate Sigma Problems 的题解

【洛谷】AT_abc371_e [ABC371E] I Hate Sigma Problems 的题解 洛谷传送门 AT传送门 题解 I Hate Sigma Problems!!! 意思很简单就是求序列中每一个子区间内含有不同数字的个数之和。 暴力的话时间复杂度是 O ( n 2 ) O(n ^ 2) O(n2)&#xff0c;是肯定不行的&#xff0…...

【Go】Go 环境下载与安装教程(Windows系统)

引言 Go&#xff0c;也被称为Golang&#xff0c;是一种静态类型&#xff0c;编译型的编程语言&#xff0c;由Google设计和开发。Go语言的设计目标是“解决软件开发中的一些问题”&#xff0c;特别是在大规模软件系统的构建和维护方面。 下载安装包 打开官网下载页面&#xff…...

毕业设计选题:基于springboot+vue+uniapp的驾校报名小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

网页通知设计灵感:CSS 和 JS 的 8 大创意实现

文章目录 前言正文1.霓虹灯风格的通知系统2.垂直时间轴通知3.动画徽章通知4.项目式通知5.多种状态通知&#xff1a;成功、错误、警告6.信息、警告、提示组件7.扁平化风格通知8.社交媒体风格弹出通知 总结 前言 网页通知如今已成为电商、社交平台等网站的常见功能&#xff0c;它…...

计算机毕业设计之:基于微信小程序的中药材科普系统(源码+文档+讲解)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

C++速通LeetCode中等第6题-找到字符串中所有字母异位词(滑动窗口最详细代码注释)

滑动窗口法&#xff1a; class Solution { public:vector<int> findAnagrams(string s, string p) {unordered_map<char,int> need,window;for(char c : p) need[c];int left 0,right 0;int valid 0;vector<int> res;//窗口数据更新while(right < s.s…...

Tcping:一款实用的端口存活检测工具

简介 tcping 是一个基于TCP协议的网络诊断工具,通过发送 TCP SYN/ACK包来检测目标主机的端口状态。 官网:tcping.exe - ping over a tcp connection 优点: (1)监听服务器端口状态:tcping 可以检测指定端口的状态,默认是80端口,也可以指定其他端口。 (2)显示ping返…...

【每日刷题】Day130

【每日刷题】Day130 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 144. 二叉树的前序遍历 - 力扣&#xff08;LeetCode&#xff09; 2. 94. 二叉树的中序遍历 - 力扣…...

书生·浦语作业集合

目录&#xff1a; 1. Linux基础知识 2.python基础知识 3.Git基础知识 4.书生大模型全链路开源体系 1.1-Linux基础知识 配置环境后&#xff0c;运行 hello_word.py 在本地终端中进行端口映射 映射成功后&#xff0c;访问 127.0.0.1&#xff1a;7860 1.2-python基础知识 任务…...

得物App科技创新“再上一层楼”,荣获国家级奖项

近日&#xff0c;在2024中国国际服务贸易交易会&#xff08;简称“服贸会”&#xff09;上&#xff0c;得物App荣获“科技创新服务示范案例”奖项。这是国家层面对得物App以科技创新保障品质消费、提升消费体验成效的肯定。 在得物App上&#xff0c;90后、95后这些曾经的“新生…...