【自学笔记】PHP语言基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

        • 1. PHP 简介
        • 2. PHP 环境搭建
        • 3. 基本语法
          • 变量与常量
          • 数据类型
          • 运算符
        • 4. 控制结构
          • 条件语句
          • 循环语句
        • 5. 函数
          • 函数定义与调用
          • 作用域
        • 6. 数组
        • 7. 字符串
        • 8. 表单处理
        • 9. 会话管理
          • Cookies
          • Sessions
        • 10. 文件操作
        • 11. 面向对象编程
          • 类与对象
          • 继承与多态
        • 12. 代码示例
  • 总结


1. PHP 简介

PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适用于 Web 开发,并可嵌入到 HTML 中。

2. PHP 环境搭建
  • 安装 XAMPP/WAMP/MAMP(根据操作系统选择)
  • htdocs(XAMPP)/www(WAMP/MAMP)目录下创建 PHP 文件
  • 启动服务器,访问 http://localhost/yourfile.php
3. 基本语法
变量与常量
<?php
$variable = "Hello, World!"; // 变量
define("CONSTANT", "This is a constant"); // 常量
echo $variable; // 输出变量
echo CONSTANT; // 输出常量
?>
数据类型

PHP 支持多种数据类型,包括字符串、整数、浮点数、布尔值、数组、对象等。

运算符
<?php
$a = 5 + 3; // 算术运算符
$b = $a == 8 ? true : false; // 三元运算符
$c = $a > 3 && $a < 10; // 逻辑运算符
echo $a, $b, $c;
?>
4. 控制结构
条件语句
<?php
$number = 10;
if ($number > 5) {echo "Number is greater than 5";
} elseif ($number == 5) {echo "Number is equal to 5";
} else {echo "Number is less than 5";
}
?>
循环语句
<?php
for ($i = 0; $i < 10; $i++) {echo $i;
}$j = 0;
while ($j < 10) {echo $j;$j++;
}
?>
5. 函数
函数定义与调用
<?php
function greet($name) {return "Hello, " . $name;
}echo greet("Alice"); // 调用函数
?>
作用域
<?php
$globalVar = "I am global";function testScope() {$localVar = "I am local";echo $globalVar; // 可以访问全局变量// echo $localVar; // 局部变量只能在函数内部访问
}testScope();
?>
6. 数组
<?php
$fruits = array("apple", "banana", "cherry"); // 数组定义
echo $fruits[0]; // 访问数组元素$assocArray = array("first" => "Jane", "last" => "Doe"); // 关联数组
echo $assocArray["first"]; // 访问关联数组元素
?>
7. 字符串
<?php
$str = "Hello, World!";
$length = strlen($str); // 获取字符串长度
$upperStr = strtoupper($str); // 转换为大写
echo $length, $upperStr;
?>
8. 表单处理
<!-- form.html -->
<form action="process.php" method="post"><input type="text" name="username"><input type="submit" value="Submit">
</form>
<!-- process.php -->
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {$username = $_POST['username'];echo "Username is: " . htmlspecialchars($username);
}
?>
9. 会话管理
Cookies
<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 设置 cookie
echo "Cookie named 'user' is set!<br>";
echo "Value is: " . $_COOKIE["user"]; // 访问 cookie
?>
Sessions
<?php
session_start();
$_SESSION["username"] = "John Doe"; // 设置 session 变量
echo "Session variable 'username' is set!<br>";
echo "Value is: " . $_SESSION["username"]; // 访问 session 变量
?>
10. 文件操作
<?php
$file = fopen("example.txt", "w"); // 打开文件用于写入
fwrite($file, "Hello, World!"); // 写入文件
fclose($file); // 关闭文件$file = fopen("example.txt", "r"); // 打开文件用于读取
$content = fread($file, filesize("example.txt")); // 读取文件内容
fclose($file); // 关闭文件echo $content; // 输出文件内容
?>
11. 面向对象编程
类与对象
<?php
class Car {public $color;function __construct($color = "red") {$this->color = $color;}function getColor() {return $this->color;}
}$myCar = new Car("blue");
echo $myCar->getColor(); // 输出 "blue"
?>
继承与多态
<?php
class Animal {public function speak() {return "Some sound";}
}class Dog extends Animal {public function speak() {return "Bark";}
}$animal = new Animal();
$dog = new Dog();echo $animal->speak(); // 输出 "Some sound"
echo $dog->speak(); // 输出 "Bark"
?>
12. 代码示例

以下是一个完整的 PHP 程序示例,它结合了上述多个知识点:

<!-- index.php -->
<?php
session_start();if ($_SERVER["REQUEST_METHOD"] == "POST") {$_SESSION["username"] = htmlspecialchars($_POST['username']);header("Location: welcome.php");exit();
}
?><!DOCTYPE html>
<html>
<head><title>PHP Login Example</title>
</head>
<body><form action="" method="post"><label for="username">Username:</label><input type="text" id="username" name="username"><input type="submit" value="Login"></form>
</body>
</html>
<!-- welcome.php -->
<?php
session_start();if (!isset($_SESSION["username"])) {header("Location: index.php");exit();
}echo "Welcome, " . $_SESSION["username"] . "!";
?>

在这个示例中,用户可以在 index.php 页面输入用户名并提交表单。表单数据通过 POST 方法发送到相同的页面进行处理,用户名被存储在会话中,并且用户被重定向到 welcome.php 页面,该页面显示欢迎信息。如果用户没有通过会话验证,他们将被重定向回登录页面。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,自学记录PHP语言基础知识点总览。

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

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

相关文章

css选择最后结尾的元素DOM

前言 选中最后一个元素&#xff0c;实际使用非常频繁。 解决方案 使用 CSS 提供的选择器&#xff0c;即可完成。 如下代码示例&#xff0c;两种选择器均可实现。 <p>...</p>p:last-child{ background:#ff0000; }p:nth-last-child(1){background:#ff0000; }p&…

Axios 相关的面试题

在跟着视频教程学习项目的时候使用了axios发送请求&#xff0c;但是只是跟着把代码粘贴上去&#xff0c;一些语法规则根本不太清楚&#xff0c;但是根据之前的博客学习了fetch了之后&#xff0c;一看axios的介绍就明白了。所以就直接展示axios的面试题吧 本文主要内容&#xff…

瑞芯微RKRGA(librga)Buffer API 分析

一、Buffer API 简介 在瑞芯微官方的 librga 库的手册中&#xff0c;有两组配置 buffer 的API&#xff1a; importbuffer 方式&#xff1a; importbuffer_virtualaddr importbuffer_physicaladdr importbuffer_fd wrapbuffer 方式&#xff1a; wrapbuffer_virtualaddr wrapb…

C语言:多线程

多线程概述 定义 多线程是指在一个程序中可以同时运行多个不同的执行路径&#xff08;线程&#xff09;&#xff0c;这些线程可以并发或并行执行。并发是指多个线程在宏观上同时执行&#xff0c;但在微观上可能是交替执行的&#xff1b;并行则是指多个线程真正地同时执行&…

Linux线程池实现

1.线程池实现 全部代码&#xff1a;whb-helloworld/113 1.唤醒线程 一个是唤醒全部线程&#xff0c;一个是唤醒一个线程。 void WakeUpAllThread(){LockGuard lockguard(_mutex);if (_sleepernum)_cond.Broadcast();LOG(LogLevel::INFO) << "唤醒所有的休眠线程&q…

微信小程序逆向开发

一.wxapkg文件 如何查看微信小程序包文件&#xff1a; 回退一级 点击进入这个目录 这个就是我们小程序对应的文件 .wxapkg概述 .wxapkg是微信小程序的包文件格式&#xff0c;且其具有独特的结构和加密方式。它不仅包含了小程序的源代码&#xff0c;还包括了图像和其他资源文…

多输入多输出 | Matlab实现CPO-LSTM冠豪猪算法优化长短期记忆神经网络多输入多输出预测

多输入多输出 | Matlab实现CPO-LSTM冠豪猪算法优化长短期记忆神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现CPO-LSTM冠豪猪算法优化长短期记忆神经网络多输入多输出预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现CPO-LSTM冠豪猪算法优化长短期…

视频编码器的抉择:x264、x265、libaom、vvenc 对比测试实验

264、x265、libaom、vvenc 对比测试实验 测试机器配置&#xff1a;Apple M1 Pro -16G编码器版本&#xff08;选择自己编译&#xff09;&#xff1a;所有源码都是当前最新更新的状态&#xff0c;此外各类编码具体的编译过程可参考我的相关系列博客。 编码器GitHubx264git clon…

【二刷代码随想录】双指针-数组相关题型、推荐习题

一、双指针-数组 相关题型与常用思路 1、单个数组 &#xff08;1&#xff09;原地移除元素类 如推荐习题中的&#xff08;1&#xff09;、&#xff08;2&#xff09;、&#xff08;3&#xff09;&#xff0c;都属于此类。引入双指针 pre、last &#xff0c;用 pre 指针表明数…

Level DB --- TableCache

TableCache 是Level DB 中重要的类&#xff0c;Level DB 中多层&#xff08;multi level&#xff09;&#xff0c;且每一层&#xff08;level&#xff09;有多个 key-value file&#xff0c;TableCache正是用来缓存多层以及多层中的file数据&#xff0c;更快速地检索。 table …

搜索-BFS

马上蓝桥杯了&#xff0c;最近刷了广搜&#xff0c;感觉挺有意思的&#xff0c;广搜题类型都差不多&#xff0c;模板也一样&#xff0c;大家写的时候可以直接套模板 这里给大家讲一个比较经典的广搜题-迷宫 题目问问能否走到 (n,m) 位置&#xff0c;假设最后一个点是我们的&…

智能预测维护:让设备“未卜先知”,减少宕机烦恼

智能预测维护:让设备“未卜先知”,减少宕机烦恼 1. 引言:设备维护的痛点与出路 在工业生产和自动化领域,设备故障一直是令人头疼的问题。设备一旦故障,轻则影响生产效率,重则造成严重损失,甚至带来安全隐患。传统的设备维护方式主要有两种: 被动维护(Reactive Maint…

安卓的布局方式

一、RelativeLayout 相对布局 特点&#xff1a;每个组件相对其他的某一个组件进行定位。 (一)主要属性 1、设置和父组件的对齐&#xff1a; alignParentTop &#xff1a; 设置为true&#xff0c;代表和父布局顶部对齐。 其他对齐只需要改变后面的Top为 Left、Right 或者Bottom&…

SSM中药分类管理系统

&#x1f345;点赞收藏关注 → 添加文档最下方联系方式咨询本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345; 项目视频 SS…

epoch、batch、batch size、step、iteration深度学习名词含义详细介绍

卷积神经网络训练中的三个核心概念&#xff1a;Epoch、Batch Size 和迭代次数 在深度学习中&#xff0c;理解一些基本的术语非常重要&#xff0c;这些术语对模型的训练过程、效率以及最终性能都有很大影响。以下是一些常见术语的含义介绍&#xff1a; 1. Epoch&#xff08;周…

React(七):Redux

Redux基本使用 纯函数&#xff1a;1.函数内部不能依赖函数外部变量&#xff1b;2.不能产生副作用&#xff0c;在函数内部改变函数外部的变量 React只帮我们解决了DOM的渲染过程&#xff0c;State还是要由我们自己来管理——redux可帮助我们进行管理 Redux三大特点 1.单一数…

《Android低内存设备性能优化实战:深度解析Dalvik虚拟机参数调优》

1. 痛点分析&#xff1a;低内存设备的性能困局 现象描述&#xff1a;大应用运行时频繁GC导致卡顿 根本原因&#xff1a;Dalvik默认内存参数与硬件资源不匹配 解决方向&#xff1a;动态调整堆内存参数以平衡性能与资源消耗 2. 核心调优参数全景解析 关键参数矩阵&#xff1…

STC89C52单片机学习——第38节: [17-2] 红外遥控红外遥控电机

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.03.30 51单片机学习——第38节: [17-2] 红外遥控&红外遥控电机 前言开发板说明引用…

计算机组成原理————计算机运算方法精讲<1>原码表示法

第一部分:无符号数和有符号数的概念 1.无符号数 计算机中的数均存放在寄存器当中,通常称寄存器的位数为机器字长,所谓无符号数,就是指没有fu5号的数,在寄存器中的每一位均可用来存放数值,当存放有符号数时,需要留出位置存放符号,机器字长相同时,无符号数与有符号数所…

【什么是机器学习——多项式逼近】

什么是机器学习——多项式逼近 机器学习可以分成三大类别,监督学习、非监督学习、强化学习。三大类别背后的数学原理不同。监督学习使用了数学分析中的函数逼近方法和概率统计中的极大似然方法;非监督学习使用聚类和EM算法;强化学习使用马尔可夫决策过程的想法。 机器学习的…