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 的基础语法,涵盖了从变量、条件语句、循环、数组、函数到面向对象编程等基本内容。

结尾

今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/430209.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索AutoIt:自动化任务的Python魔法棒!

文章目录 探索AutoIt&#xff1a;自动化任务的Python魔法棒&#xff01;背景&#xff1a;为什么选择AutoIt&#xff1f;AutoIt库简介安装AutoIt库简单的库函数使用方法场景应用常见Bug及解决方案总结 探索AutoIt&#xff1a;自动化任务的Python魔法棒&#xff01; 背景&#x…

深度学习02-pytorch-06-张量的形状操作

在 PyTorch 中&#xff0c;张量的形状操作是非常重要的&#xff0c;可以让你灵活地调整和处理张量的维度和数据结构。以下是一些常用的张量形状函数及其用法&#xff0c;带有详细解释和举例说明&#xff1a; 1. reshape() 功能: 改变张量的形状&#xff0c;但不改变数据的顺序…

玄机靶场--蚁剑流量

木马的连接密码是多少 黑客执行的第一个命令是什么 id 黑客读取了哪个文件的内容&#xff0c;提交文件绝对路径 /etc/passwd 黑客上传了什么文件到服务器&#xff0c;提交文件名 黑客上传的文件内容是什么 黑客下载了哪个文件&#xff0c;提交文件绝对路径 蚁剑流量特征总结 …

移动开发(三):使用.NET MAUI打包第一个安卓APK完整过程

目录 一、修改AndroidManifest.xml 配置APP基本信息权限 二、修改项目属性调整输出Android包格式为APK 三、项目发布 四、APP分发 五、总结 之前给大家介绍过使用使用.NET MAUI开发第一个安卓APP,今天给大家介绍如何打包成APK,然后安装到安卓手机正常运行。这里还是沿用…

基于springboot的驾校预约管理系统的设计与实现 (含源码+sql+视频导入教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的驾校预约管理系统5拥有三种角色&#xff1a;管理员、教练、学员 管理员&#xff1a;学员管理、教练管理、车辆管理、车辆关联、维修管理等 教练&#xff1a;学员查看/毕…

脱离枯燥的CRUD,灵活使用Mybatis,根据mybatis动态的xml片段和接口规范动态生成代理类,轻松应付简单业务场景。

需求 需求是这样的&#xff0c;我们有一个数据服务平台的产品&#xff0c;用户先将数据源信息保存到平台上&#xff0c;一个数据源可以提供多个接口服务&#xff0c;而每个接口服务在数据库中存一个具有mybatis语法的sql片段。这样的话&#xff0c;对于一些简单的业务只需要编…

电力施工作业安全行为检测图像数据集

电力施工作业安全行为检测图像数据集&#xff0c;图片总共 2300左右&#xff0c;标注为voc(xml)格式&#xff0c;包含高空抛物&#xff0c;未佩戴安全带&#xff0c;高处作业无人监护等。 电力施工作业安全行为检测图像数据集 数据集描述 这是一个专门用于电力施工作业安全行…

Drive.js 的一些 Api 使用记录

文章目录 2024 年 drive.js 的基础使用想在下一步的时候处理些逻辑呢&#xff1f;(同步)Element 的各种选择器 2024 年 drive.js 的基础使用 安装就跳过了 npm install driver.js &#xff0c;一行代码就可以搞定 官网的 Basic Usage 基础使用的截图如下&#xff1a; 想在下…

SLAM实操入门(八):使用Robosence-16转换数据格式,进行基于A-Loam的三维SLAM

文章目录 前言1 Robosence与Velodyne格式差异.2 格式转换2.1 rs_to_velodyne库2.2 目前支持&#xff1a; 3 拉取工程并编译2.1 安装robosence雷达驱动&#xff08;类似第六章&#xff09;&#xff1a;2.2 构建rs2vel工程&#xff1a; 3 运行robosence雷达&#xff0c;并转换格式…

2012年408考研真题-数据结构

8.【2012统考真题】求整数n(n≥0)的阶乘的算法如下&#xff0c;其时间复杂度是(&#xff09;。 int fact(int n){ if(n<1) return 1; return n*fact (n-1); } A. O(log2n) B. O(n) C. O(nlog2n) D. O(n^2) 解析&#xff1a; 观察代码&#xff0c;我们不…

Matlab Simulink 主时间步(major time step)、子时间步(minor time step)

高亮颜色说明&#xff1a;突出重点 个人觉得&#xff0c;&#xff1a;待核准个人观点是否有误 高亮颜色超链接 文章目录 对Simulink 时间步的理解Simulink 采样时间的类型Discrete Sample Times(离散采样时间)Controllable Sample Time(可控采样时间) Continuous Sample Times(…

在MAC中Ollama开放其他电脑访问

ollama安装完毕后默认只能在本地访问&#xff0c;之前我都是安装其他的软件之后可以结合开放其他端口访问&#xff0c;其实是可以新增或修改下电脑的系统配置&#xff0c;就可以打开端口允许除本机IP或localhost访问。 步骤如下&#xff1a; 1、查看端口&#xff08;默认是&…

Shelly实测天工的音乐创作功能,写了一首歌,来听听效果

​ 大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 在数字时代的洪流中&#xff0c;我始终…

杀软对抗 ---> Perfect Syscall??

好久没更了&#xff0c;今天想起来更新了&#x1f60b;&#x1f60b;&#x1f60b;&#x1f60b; 目录 1.AV && EDR 2.Perfect Syscall&#xff1f;&#xff1f; 3.Truly Perfect ??? 在开始之前先来展示一下这次的免杀效果 1.AV && EDR 360 天擎EDR …

Python模块和包:自定义模块和包③

文章目录 一、模块1.1 什么是模块1.2 创建模块1.3 导入模块1.4 模块的命名空间 二、包2.1 什么是包2.2 创建包2.3 导入包2.4 包的命名空间 三、综合详细例子3.1 项目结构3.2 模块代码student.pycourse.pymanager.py 3.3 主程序代码main.py 3.4 运行结果 四、总结 Python模块和包…

Apifox 「定时任务」操作指南,解锁自动化测试的新利器

定时任务是按照预设时间自动执行的任务&#xff0c;它可以有效解决一些常见问题&#xff0c;比如频繁执行的回归测试和大规模的接口测试&#xff0c;这些任务需要在固定时间点或间隔周期内自动运行&#xff0c;以确保软件的持续集成和持续交付过程中的稳定性和可靠性。通过使用…

计算机网络34——Windows内存管理

1、计算机体系结构 2、内存管理 分为连续分配管理和非连续分配管理 在块内存在的未使用空间叫内部碎片&#xff0c;在块外存在的未使用空间叫外部碎片 固定分区分配可能出现内部碎片&#xff0c;动态分区分配可能出现外部碎片 3、逻辑地址和实际地址的互相转换 4、缺页中断 …

微信支付商户 - 如何开通商家转账到零钱

商家转账到零钱功能的快速开通&#xff0c;需要商家遵循一系列步骤并确保所有条件符合微信支付的要求。以下是一些关键步骤和注意事项&#xff0c;以确保商家可以最快开通该功能&#xff1a; 一、确认申请资格 1. 公司性质&#xff1a;确保申请主体为公司性质&#xff08;有限…

【Docker】安装全流程与配置完整镜像源(可安装 nginx)

目录 一、卸载历史版本&#xff08;选&#xff09;二、配置 yum 源三、安装 docker四、配置 docker 镜像源加速&#xff08;选、强烈建议&#xff09;4.1 配置阿里镜像加速4.2 配置其他镜像源 五、启动 docker参考文章与视频 本文基于 Linux - CentOS 7 操作系统。 一、卸载历史…

Unity3D入门(二) :Unity3D实现视角的丝滑过渡切换

1. 前言 上篇文章&#xff0c;我们已经初步了解了Unity3D&#xff0c;并新建并运行起来了一个项目&#xff0c;使相机视角自动围绕着立方体旋转。 这篇文章&#xff0c;我们来讲一下Unity3D怎么过渡地切换视角。 我们继续是我上篇文章中的项目&#xff0c;但是需要向把Camera…