【PHP开发】PHP后端基础

news/2025/1/2 2:02:07/文章来源:https://www.cnblogs.com/o-O-oO/p/18642665

一、PHP 基本概念详解

PHP是一种服务器端脚本语言,常用于动态网站开发和 web 应用程序。以下是 PHP 的基本概念与特点的详细说明:

1.1 PHP 文件的默认文件扩展名

PHP 文件的扩展名通常为 .php,例如 index.php。

PHP 文件可以包含 PHP 代码、HTML、CSS 和 JavaScript。

Web 服务器会通过 PHP 解析器处理 .php 文件中的 PHP 代码,并将结果返回给浏览器。

1.2 PHP 脚本的位置

PHP 脚本可以嵌套在 HTML 文档的任意位置。典型的嵌套示例:

<html>
<body><h1>欢迎访问我的网站</h1><?phpecho "这是一个 PHP 脚本块。";?>
</body>
</html>

也可以使用纯 PHP 脚本文件,无需包含 HTML:

<?phpecho "这是一个纯 PHP 文件。";
?>

1.3 PHP 脚本标记

PHP 脚本以 <?php 开头,以 ?> 结束。
示例:

<?phpecho "Hello, World!";
?>

注意:短标签 <? ... ?> 在某些服务器配置中可能被禁用,建议使用完整标签 <?php ... ?>

1.4 PHP 语句结束标记

PHP 中的每个语句必须以分号 (;) 结束。如果遗漏分号,可能导致解析错误。

示例:

<?phpecho "这是第一条语句。";echo "这是第二条语句。";
?>

1.5 PHP 注释语法

单行注释:使用 //# 注释单行代码:

<?php// 这是一个单行注释# 这是另一个单行注释echo "Hello, PHP!";
?>

多行注释:使用 /* 开始,*/ 结束,适用于多行:

<?php/* 这是一个多行注释用于解释代码的功能或逻辑 */echo "多行注释结束后运行的代码。";
?>

1.6 PHP 是一门弱类型语言

弱类型语言意味着变量的类型可以根据赋值自动转换,无需显式声明类型。PHP 使用 $ 符号定义变量,类型可以是字符串、整数、浮点数、数组等:

<?php$text = "这是一个字符串";  // 字符串$number = 42;            // 整数$price = 19.99;          // 浮点数
?>

PHP 会根据上下文自动调整变量类型:

<?php$x = "5";$y = 3;$sum = $x + $y;  // $x 被自动转换为整数echo $sum;       // 输出 8
?>

1.7 PHP 的特点

跨平台:PHP 可以运行在 Windows、Linux 和 macOS 等多种操作系统上。

开源:PHP 是免费的,且有广泛的社区支持。

嵌套能力:PHP 可与 HTML 紧密结合,用于生成动态内容。

丰富的扩展库:PHP 提供大量扩展,用于处理数据库、文件、网络协议等。

二、PHP 中的变量及其类型详解

2.1 PHP 中变量的定义

PHP 中的变量以 $ 开头,后跟变量名。变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线。变量名区分大小写。

示例:

<?php$name = "Alice"; // 字符串$age = 25;       // 整数
?>

2.2 PHP 变量的类型

PHP 是弱类型语言,变量的类型可以根据赋值自动确定。以下是 PHP 支持的主要变量类型:

  1. 字符串 (String)

用于存储文本数据。字符串可以用单引号 ' 或双引号"包裹。双引号支持变量解析和转义字符,单引号不支持变量解析。

示例:

<?php$str1 = "Hello, PHP!";  // 双引号字符串$str2 = 'Hello, World!'; // 单引号字符串$name = "Alice";echo "My name is $name"; // 输出:My name is Aliceecho 'My name is $name'; // 输出:My name is $name
?>
  1. 整数 (Integer)

用于存储整数值(正数、负数或 0)。必须是无小数点的数字。支持十进制、八进制(以 0 开头)、十六进制(以 0x 开头)和二进制(以 0b 开头)。

示例:

<?php$int1 = 42;       // 十进制$int2 = 0b101010; // 二进制$int3 = 0x2A;     // 十六进制$int4 = 052;      // 八进制echo $int1;       // 输出:42
?>
  1. 浮点数 (Float)

用于存储带小数点的数字或科学计数法表示的数字。

示例:

<?php$float1 = 3.14159;   // 小数$float2 = 1.2e3;     // 科学计数法 (1.2 * 10^3)$float3 = 7E-10;     // 科学计数法 (7 * 10^-10)echo $float1;        // 输出:3.14159
?>
  1. 布尔值 (Boolean)

用于存储逻辑值:true 或 false。常用于条件判断。

示例:


<?php$isPHPFun = true;$isHard = false;if ($isPHPFun) {echo "PHP is fun!";}
?>
  1. 数组 (Array)

数组用于存储多个值。PHP 中数组分为以下三类:

索引数组 (Indexed Array): 使用数字索引。

关联数组 (Associative Array): 使用键值对,键为字符串。

多维数组 (Multidimensional Array): 包含多个数组作为其元素的数组。

a) 索引数组

元素按数字索引从 0 开始。

示例:


<?php$fruits = array("Apple", "Banana", "Cherry");echo $fruits[0]; // 输出:Apple
?>

也可以使用 [``] 语法定义:


<?php$fruits = ["Apple", "Banana", "Cherry"];echo $fruits[1]; // 输出:Banana
?>

b) 关联数组

元素使用字符串作为键。

示例:


<?php$person = array("name" => "Alice","age" => 25,"city" => "New York");echo $person["name"]; // 输出:Alice
?>

c) 多维数组

数组的元素可以是另一个数组。

示例:

<?php$matrix = array(array(1, 2, 3),array(4, 5, 6),array(7, 8, 9));echo $matrix[1][2]; // 输出:6
?>
  1. 对象 (Object)

PHP 使用类和对象支持面向对象编程。

示例:

<?phpclass Person {public $name;public $age;function __construct($name, $age) {$this->name = $name;$this->age = $age;}function greet() {return "Hello, my name is $this->name and I am $this->age years old.";}}$person = new Person("Alice", 25);echo $person->greet(); // 输出:Hello, my name is Alice and I am 25 years old.
?>
  1. NULL

NULL 是一个特殊的值,用于表示变量没有值。可以通过赋值 NULL 来清空变量。

示例:

<?php$var = "Hello, PHP!";$var = NULL; // 现在 $var 没有值
?>

2.3 变量类型的动态转换

PHP 会根据上下文自动转换变量类型(类型转换)。

示例:

<?php$x = "5";$y = 10;$sum = $x + $y; // 自动将 $x 转换为整数echo $sum;      // 输出:15
?>

三、如何自定义 PHP 变量

在 PHP 中,变量是用来存储数据的标识符,可以是任何类型的值,例如字符串、整数、数组等。以下是自定义变量的详细规则和示例:

3.1 使用 $ 定义变量

所有变量必须以美元符号($)开头。后面紧跟变量的名称,这个名称可以是一个有效的标识符。赋值时,使用等号 = 将值赋给变量。

示例:


<?php$name = "Alice";  // 定义变量 $name,并赋值为字符串 "Alice"$age = 25;        // 定义变量 $age,并赋值为整数 25$isStudent = true; // 定义变量 $isStudent,并赋值为布尔值 true
?>

3.2 变量名称规则

(1) 变量名称不能以数字开头

变量名必须以字母或下划线开头。

不允许以下格式:


<?php$1var = "Invalid"; // 错误$123name = "Invalid"; // 错误
?>

✅正确的格式:

<?php$var1 = "Valid"; // 正确$_name = "Valid"; // 正确
?>

(2) 变量名称只能包含字母、数字和下划线

有效字符包括字母 (A-Z, a-z)、数字 (0-9) 和下划线 _

不允许的格式:

<?php$my-var = "Invalid"; // 错误,包含非法字符 "-"$my var = "Invalid"; // 错误,包含空格
?>

✅正确的格式:

<?php$my_var = "Valid"; // 正确,使用下划线$var123 = "Valid"; // 正确,包含数字
?>

(3) 变量名称对大小写敏感

PHP 中的变量名称是区分大小写的。

示例:

<?php$name = "Alice";$Name = "Bob";echo $name; // 输出:Aliceecho $Name; // 输出:Bob
?>

$name 和 $Name 是两个不同的变量。

3.3 变量的赋值与初始化

变量在第一次赋值时被初始化。PHP 中未赋值的变量默认为 NULL,但建议显式赋值。

示例:

<?php$count = 10;      // 定义并初始化变量$text = "Hello";  // 定义字符串变量$empty;           // 未初始化变量,默认为 NULLecho $empty;      // 输出为空
?>

3.4 动态变量

PHP 支持动态变量,即变量的名称可以由另一个变量的值确定。

示例:

<?php$varName = "greeting"; // 定义变量名$$varName = "Hello, World!"; // 定义动态变量echo $greeting; // 输出:Hello, World!
?>

解释:$$varName 等价于 $greeting。

3.5 命名约定与最佳实践

遵循清晰和语义化的命名规则:变量名应该能够描述其用途。

不推荐:

<?php$x = "Alice"; // 变量名没有意义$y = 25;      // 变量名模糊
?>

✅推荐:

<?php$userName = "Alice"; // 清晰的变量名$userAge = 25;       // 变量名具有语义
?>

使用驼峰式命名或下划线命名:

驼峰式命名:$userName, $productPrice

下划线命名:$user_name, $product_price

避免使用保留字作为变量名:如 class, function, echo 等。

3.6 变量的作用域

全局变量:定义在函数外部,作用域为整个脚本。

局部变量:定义在函数内部,仅在函数内可用。

示例:

<?php$globalVar = "I am global"; // 全局变量function testScope() {$localVar = "I am local"; // 局部变量echo $localVar; // 输出:I am local}testScope();echo $globalVar; // 输出:I am global// echo $localVar; // 错误:未定义
?>

四、PHP 预定义超全局变量

PHP 的 超全局变量是一组预定义的变量,可以在脚本的任何地方使用,而无需显式地声明为 global。它们为处理用户输入、服务器环境信息、会话数据等提供了便利。

4.1 $GLOBALS

功能:包含所有全局作用域的变量。它是一个超全局数组,变量名作为键。作用:在函数或方法中访问全局变量。

示例:

<?php$x = 10;$y = 20;function calculateSum() {$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; // 使用$GLOBALS访问全局变量}calculateSum();echo $z; // 输出:30
?>

4.2 $_SERVER

功能:存储服务器和执行环境的信息。它是一个数组,包含诸如请求头、路径和脚本位置等信息。

常用键值:

$_SERVER['PHP_SELF']:当前执行脚本的文件名。

$_SERVER['SERVER_NAME']:服务器的主机名。

$_SERVER['HTTP_HOST']:当前请求的主机头。

$_SERVER['REMOTE_ADDR']:客户端的 IP 地址。

$_SERVER['REQUEST_METHOD']:请求方法(如 GET、POST)。

$_SERVER['QUERY_STRING']:URL 中的查询字符串。

·示例:

<?phpecho $_SERVER['PHP_SELF']; // 输出当前脚本名echo $_SERVER['SERVER_NAME']; // 输出服务器名echo $_SERVER['REMOTE_ADDR']; // 输出客户端 IP
?>

4.3 $_GET(很常见)

功能:通过 URL 的查询字符串传递的变量。

用途:接收通过 HTTP GET 方法发送的数据。

特点:

数据附加在 URL 后(如 example.com/index.php?name=Alice)。适合小型、非敏感数据的传递。

示例:

<?php// URL: example.com/index.php?name=Alice&age=25$name = $_GET['name']; // 获取 URL 中的 name 参数$age = $_GET['age'];   // 获取 URL 中的 age 参数echo "Name: $name, Age: $age"; // 输出:Name: Alice, Age: 25
?>

4.4 $_POST(网安在抓包的时候经常看到POST请求)

功能:通过 HTTP POST 方法传递的变量。

用途:接收表单中通过 POST 方法发送的数据。

特点:数据不会显示在 URL 中,适合传递大量或敏感数据。

示例:

<?php// 表单提交后接收数据if ($_SERVER['REQUEST_METHOD'] === 'POST') {$username = $_POST['username'];$password = $_POST['password'];echo "Username: $username, Password: $password";}
?>

4.5 $_REQUEST

功能:包含通过 GET、POST 或 COOKIE 方法传递的所有输入。

用途:访问用户输入的通用方法,但推荐使用 $_GET 和 $_POST 来明确区分来源。

示例:

<?php$name = $_REQUEST['name']; // 可能来自 GET 或 POSTecho "Hello, $name!";
?>

4.6 $_SESSION

功能:存储会话变量,用于跨页面维持用户数据。特点:

需要启动会话:session_start()。

数据存储在服务器端。

数据会在浏览器关闭后失效,除非配置会话持续时间。

示例:

<?phpsession_start(); // 开启会话$_SESSION['user'] = "Alice"; // 设置会话变量echo $_SESSION['user']; // 输出:Alice
?>

功能:通过客户端存储的小型数据,用于持久化跨会话的信息。

特点:

数据存储在客户端浏览器中。

设置 Cookie 使用 setcookie()。

示例:

<?php// 设置一个 Cookiesetcookie("username", "Alice", time() + 3600); // 1小时有效echo $_COOKIE['username']; // 输出:Alice
?>

4.8 $_FILES

功能:处理文件上传的数据。

用途:在表单中上传文件,并获取文件信息。

常用键值:

$_FILES['file']['name']:文件名。

$_FILES['file']['tmp_name']:临时文件的路径。

$_FILES['file']['size']:文件大小。

$_FILES['file']['error']:错误代码。

示例:


<?phpif ($_SERVER['REQUEST_METHOD'] === 'POST') {$fileName = $_FILES['file']['name'];$tmpPath = $_FILES['file']['tmp_name'];move_uploaded_file($tmpPath, "uploads/" . $fileName); // 保存文件echo "File uploaded: $fileName";}
?>

总结表

HTTP GET 和 POST 方法的区别

在 HTTP 协议中,GET 和 POST 是最常用的两种请求方法,用于客户端与服务器之间的数据交互。虽然它们的功能相似,但在用途和技术实现上有显著差异。

  1. 数据传输方式
GET POST
通过 URL 的查询字符串传输数据。 通过请求体(Body)传输数据。
数据直接附加在 URL 后,形式为 example.com?name=Alice&age=25。 数据不显示在 URL 中,嵌入请求体,形式不可见。
  1. 数据长度限制
GET POST
数据长度有限制,因为 URL 的长度受到浏览器和服务器的限制(通常为 2048 个字符)。 无明显长度限制,可传输大量数据,具体限制取决于服务器设置。
  1. 数据安全性
GET POST
安全性较低,因为数据包含在 URL 中,容易被拦截或记录在浏览历史中。 相对安全,数据存储在请求体中,不会出现在浏览器地址栏,但仍需使用 HTTPS 保护。
  1. 数据用途
GET POST
用于请求数据。典型用途是获取资源,如网页或 API 数据。 用于提交数据。典型用途是提交表单或上传文件。
示例:查询用户信息。 示例:登录、注册。
  1. 可缓存性
GET POST
可以被缓存。浏览器和中间代理服务器会缓存 GET 请求。 不会被缓存。每次都会提交新的请求。
  1. 浏览器行为
GET POST
可通过浏览器的地址栏直接输入或保存为书签。 不能通过地址栏直接输入,也不能保存为书签。
可被搜索引擎索引。 不会被搜索引擎索引。
  1. 常用场景
GET POST
适用于查询操作,如搜索页面或获取资源信息。 适用于需要对服务器进行修改或提交敏感数据的操作。
示例:在线搜索、分页。 示例:提交表单、上传文件。
  1. 示例代码

GET 示例

<?php// URL: example.com/index.php?name=Alice&age=25echo "Name: " . $_GET['name']; // 获取 GET 参数echo "Age: " . $_GET['age'];
?>

POST 示例

<form method="post" action="submit.php">Name: <input type="text" name="name">Age: <input type="text" name="age"><input type="submit">
</form><?phpecho "Name: " . $_POST['name']; // 获取 POST 参数echo "Age: " . $_POST['age'];
?>

总结表

五、PHP函数

  1. echo

作用:输出字符串或变量到页面。用途:在调试时显示变量值,生成页面内容。

特点:

不返回值,直接输出。

可输出多个字符串,逗号分隔。

示例:

$message = "Hello, World!";
echo $message; // 输出 Hello, World!
echo "This ", "is ", "a ", "test."; // 输出 This is a test.
  1. var_dump

作用:显示变量的详细信息,包括类型和值。

用途:调试时分析变量内容和数据结构。

特点:

可显示复杂数据类型(如数组、对象)。

输出包括变量类型和值,调试时非常实用。

示例:

$array = [1, "PHP", true];
var_dump($array); 
// 输出:
// array(3) {
//   [0]=> int(1)
//   [1]=> string(3) "PHP"
//   [2]=> bool(true)
// }
  1. setcookie

作用:在客户端设置一个 cookie。

用途:用于会话管理、跟踪用户状态。

参数:

a.Cookie 名称。

b.Cookie 值。

c.过期时间(时间戳)。

d.可选路径、域名和安全选项。

示例:

setcookie("user", "Alice", time() + 3600, "/"); 
// 设置一个名为 user 的 cookie,有效期为 1 小时。
  1. session_start

作用:启动一个会话,或恢复现有会话。

用途:用于保存用户状态信息,例如登录状态。

特点:

必须在任何输出之前调用。

默认会话数据存储在服务器上,通过客户端的 session ID 匹配。

示例:

session_start(); // 开启会话
$_SESSION['user'] = 'Alice'; // 设置会话变量
echo $_SESSION['user']; // 输出会话变量值

补充的安全相关 PHP 函数

在学习和实践网络安全时,这些 PHP 函数可以帮助保护应用程序免受常见漏洞的影响,并用于开发安全的代码。
以下是详细的介绍:

  1. 文件操作相关

file_get_contents()

作用:读取文件内容并以字符串形式返回。

用途:用于检测本地文件包含漏洞(LFI)或远程文件包含漏洞(RFI)。

示例:

$content = file_get_contents("config.txt"); 
echo $content; // 输出文件内容

file_put_contents()

作用:将数据写入文件(覆盖或追加)。

用途:测试文件操作漏洞或用于日志记录。

示例:

file_put_contents("log.txt", "Unauthorized access detected\n", FILE_APPEND);

unlink()

作用:删除指定文件。

用途:用于清理敏感文件或测试文件删除权限。

示例:

if (file_exists("temp.txt")) {unlink("temp.txt"); // 删除临时文件
}
  1. 用户输入处理
    htmlspecialchars()

作用:将 HTML 特殊字符转换为实体,防止 HTML 注入。

用途:防止 XSS(跨站脚本攻击)。

示例:

$user_input = '<script>alert("XSS")</script>';
echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8'); 
// 输出:<script>alert("XSS")</script>

strip_tags()

作用:移除字符串中的 HTML 和 PHP 标签。

用途:用于对用户输入的基本清理。

示例:

$input = '<p>Hello <b>World</b></p>';
echo strip_tags($input); // 输出:Hello World

addslashes()

作用:在字符串中的引号前添加反斜杠,转义特殊字符。

用途:保护数据免受 SQL 注入攻击。

示例:

$unsafe_data = "Alice's home";
$safe_data = addslashes($unsafe_data);
echo $safe_data; // 输出:Alice\'s home
  1. 数据库操作

mysqli_real_escape_string()

作用:转义 SQL 查询中的特殊字符。

用途:防止 SQL 注入。

示例:

$conn = new mysqli("localhost", "user", "password", "database");
$unsafe_input = "' OR '1'='1";
$safe_input = $conn->real_escape_string($unsafe_input);
$query = "SELECT * FROM users WHERE username = '$safe_input'";

PDO::prepare()

作用:使用预编译语句,防止 SQL 注入。

用途:推荐的安全数据库查询方法。

示例:

$pdo = new PDO("mysql:host=localhost;dbname=test", "user", "password");
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->execute(['username' => $unsafe_input]);
  1. 加密与解密

hash()

作用:生成字符串的哈希值。

用途:用于存储密码或验证数据完整性。

示例:

$password = "securepassword";
$hashed_password = hash("sha256", $password);

password_hash()

作用:生成强散列密码。

用途:安全地存储用户密码。

示例:

$password = "securepassword";
$hash = password_hash($password, PASSWORD_DEFAULT);

openssl_encrypt() / openssl_decrypt()

作用:加密或解密数据。

用途:用于传输敏感信息的保护。

示例:

$data = "Sensitive Information";
$key = "encryptionkey";
$encrypted = openssl_encrypt($data, "AES-128-ECB", $key);
$decrypted = openssl_decrypt($encrypted, "AES-128-ECB", $key);
  1. 网络交互与响应
    header()

作用:发送原始 HTTP 报头。

用途:用于设置重定向、防止缓存、或指定内容类型。

示例:

header("Location: login.php");

http_response_code()

作用:设置 HTTP 响应状态码。

用途:用于返回特定的 HTTP 状态(如 404, 500)。

示例:

http_response_code(404);
echo "Page not found";
  1. 全局变量管理

$GLOBALS

作用:访问所有全局变量。

用途:在需要跨函数共享数据时使用。

示例:

$x = 10;
function test() {echo $GLOBALS['x']; // 输出 10
}

session_start()

作用:启动或恢复会话。

用途:管理用户登录状态。

示例:

session_start();
$_SESSION['user'] = 'Alice';

总结

以上函数涵盖了文件操作、用户输入过滤、数据库操作、加密解密和网络交互等安全开发的关键领域。结合这些函数,您可以有效防范常见的安全漏洞(如 XSS、SQL 注入、文件包含攻击等),并提高 PHP 应用的安全性。

原创 天启互联网工作室

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

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

相关文章

虽遗憾贯穿始终,恍惚过后,好在苦尽甘来不言弃——2024秋软工实践个人总结博客

目录一、学期回顾1.0 汇总———作业&项目1.1我的想象和初心1.2我的投入(头发)和产出1.2.1 编写代码1.2.2 团队项目参与1.2.3 花费的时间1.3印象最深刻的一集二、总结收获2.1我的软工实践故事(流水账)2.1.0 预备2.1.1个人作业2.1.2 结对作业2.1.3 团队作业2.2新技术或生…

XshellPlus V7中文版绿色免安装版下载及使用教程

XshellPlus 是一款将 Xshell 和 Xftp 打包在一起的强大远程管理工具,结合了 Xshell 和 Xftp 的所有功能,提供更高效的远程控制和文件传输体验。目前xshell个人用户已经可以免费使用,官方已经推出个人版!什么是 XshellPlus? XshellPlus 是一款集成了 Xshell 和 Xftp 的工具…

并非简易SE

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13315这个作业的目标 总结回顾这一学期的收获学号 052101418一、学期回顾 在这学期的软工实践课程中,我经历了诸多挑战,也收获了宝贵…

.NET周刊【12月第4期 2024-12-22】

国内文章 dotnet 简单使用 ICU 库进行分词和分行 https://www.cnblogs.com/lindexi/p/18622917 本文将和大家介绍如何使用 ICU 库进行文本的分词和分行。 dotnet 简单聊聊 Skia 里的 SKFontMetrics 的各项属性作用 https://www.cnblogs.com/lindexi/p/18621674 本文将和大家简单…

python-nmap实现python利用nmap扫描分析

Nmap是一个非常用的网络/端口扫描工具,如果想将nmap集成进你的工具里。可以使用python-nmap这个python库,它提供了一个简单的接口来使用nmap进行扫描。目录前言python-nmap的基本使用PortScanner扫描PortScannerAsync异步扫描python-nmap的源码分析 前言 Nmap是一个非常用的网…

风继续吹

风继续吹 一、学期回顾 1.1 回顾你对于软件工程课程的想象 在学期初,我对软件工程课程没多少了解,觉得它应该和之前的部分课程一样,老师讲解一些编程语法然后布置作业,后期周末去实验室编程完成实验,期末再复习一下这门课编写代码作答题目这门课也就过去了。但实际上的软工…

初识Spring -2024/12/30

Spring优点Spring FrameworkCore Container:核心容器 AOP:面向切面编程 Aspects: AOP思想实现 Data Access :数据访问 Data Integration: 数据集成IoC,IoC容器,Bean,DI导入依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring…

【Leetcode】链表

链表 160. 相交链表 206. 反转链表 234. 回文链表 141. 环形链表 142. 环形链表 II 21. 合并两个有序链表 2. 两数相加 19. 删除链表的倒数第 N 个结点 25. K 个一组翻转链表 138. 随机链表的复制 148. 排序链表 23. 合并 K 个升序链表 146. LRU 缓存 160. 相交链表 方法一:模…

The end-软工实践之旅

一、学期回顾 1.1 回顾你对于软件工程课程的想象 在学期初,我眼中的软件工程课程是一门教大家如何从零开始开发软件,实际上大部分知识都需要自己学习掌握,软工课着重系统地学习软件开发流程,掌握从需求分析、设计、编码到测试的全套本领,雕琢出实用且受欢迎的软件作品。 如…

‍禁止蕉绿——软件工程个人总结

这个作业属于哪个课程 软件工程这个作业要求在哪里 软件工程2024秋——个人总结作业这个作业的目标 学期总结学号 102202150🙅‍禁止焦虑——2024秋软工实践个人总结博客 一、🎞️学期回顾🎞️ 1.1 💭回顾你对于软件工程课程的想象💭 刚开始我对软件工程的理解只局限…

《计算机组成及汇编语言原理》阅读笔记:p133-p159

《计算机组成及汇编语言原理》学习第 11 天,p133-p159 总结,总计 27 页。 一、技术总结 1.segment (1)定义 Broadly speaking, a contiguous section of memory. More specifically, a section of memory referenced by one of the segment registers of the 80x86 family.…

并非银河战舰,皮划艇也能启航

目录标题一、学期回顾1.1 回顾对软工课程的想象1.2 回顾在这门课程中的投入与产出1.3 最印象深刻的答辩二、总结收获2.1 自己的人月神话2.2 学习到的新技术和生产力工具2.3 除了技术之外,还得到了哪些提升2.4 对下一届实践的建议三、致谢这个作业属于哪个课程 https://edu.cnb…