PHP快速入门02-PHP语言基础

文章目录

  • 前言
  • 一、 数据类型
    • 1.1 String(字符串)
    • 1.2 Integer(整型)
    • 1.3 Float(浮点型)
    • 1.4 Boolean(布尔型)
    • 1.5 Array(数组)
    • 1.6 Object(对象)
    • 1.7 NULL(空值)
    • 1.8 Resource(资源类型)
  • 二、 常量与变量
    • 2.1 define 常量的定义与使用
    • 2.2 const 常量的定义与使用
    • 2.3 静态变量
    • 2.4 超全局变量
  • 三、 条件语句
  • 四、 Switch语句
  • 五、循环语句
    • 5.1 for循环
    • 5.2 while循环
  • 六、数组与对象
    • 6.1 对象
    • 6.2数组
  • 七、 运算符
  • 八、函数与命名空间
    • 8.1 函数
    • 8.2 命名空间
  • 九、魔术常量和魔术方法
    • 9.1 魔术常量
    • 9.2 魔术方法
  • 总结


前言

本文已收录于PHP全栈系列专栏:PHP快速入门与实战,基础是任何一门语言都必须学习的,万丈高楼平地起。本节内容将带大家一起了解PHP的数据类型,常量与变量,条件语句,循环语句,对象数组,函数与命名空间等相关知识。
在这里插入图片描述

一、 数据类型

PHP 中主要支持 String(字符串),Integer(整型),Float(浮点型),Boolean(布尔型),Array(数组),Object(对象),NULL(空值),Resource(资源类型)这些数据类型。具体的使用说明举例如下。

1.1 String(字符串)

在PHP中,字符串是一种常用的数据类型,可以存储文本数据。例如:

$name = "John Doe"; // 定义一个字符串变量
echo $name; // 输出结果为 John Doe

1.2 Integer(整型)

整型是PHP中表示整数的数据类型,例如:

$num1 = 10; // 定义一个整型变量
$num2 = 20;
$sum = $num1 + $num2; // 对整型变量进行计算
echo $sum; // 输出结果为 30

1.3 Float(浮点型)

浮点型是PHP中表示小数的数据类型,例如:

$price = 9.99; // 定义一个浮点型变量
$quantity = 3;
$total = $price * $quantity; // 对浮点型变量进行计算
echo $total; // 输出结果为 29.97

1.4 Boolean(布尔型)

布尔型是PHP中表示真或假的数据类型,例如:

$is_male = true; // 定义一个布尔型变量
if ($is_male) {
   echo "Male"; // 输出结果为 Male
} else {
   echo "Female";
}

1.5 Array(数组)

数组是一种可以存储多个值的数据类型,例如:

$fruits = array("apple", "banana", "orange"); // 定义一个数组变量
echo $fruits[0]; // 输出结果为 apple

1.6 Object(对象)

对象是一种可以封装数据和方法的数据类型,例如:

class Person {
   public $name;
   public function sayHello() {
      echo "Hello, my name is " . $this->name;
   }
}
$person = new Person(); // 创建一个对象
$person->name = "John"; // 设置对象属性
$person->sayHello(); // 调用对象方法,输出结果为 Hello, my name is John

1.7 NULL(空值)

NULL表示变量没有值,例如:

$age = null; // 定义一个空值变量
if (is_null($age)) {
   echo "Age is not set"; // 输出结果为 Age is not set
}

1.8 Resource(资源类型)

资源类型是一种可以指向外部资源的数据类型,例如:

$file = fopen("file.txt", "r"); // 打开文件,返回一个指向资源的句柄
echo fread($file, filesize("file.txt")); // 读取文件内容并输出
fclose($file); // 关闭文件

二、 常量与变量

2.1 define 常量的定义与使用

在PHP中,常量是固定值,一旦定义就不能被修改或取消定义。以下是一些常量的使用示例:

  1. 定义一个常量:
define("MY_CONST", "Hello World!"); // 定义一个名为 MY_CONST,值为 "Hello World!" 的常量
  1. 使用常量:
echo MY_CONST; // 输出结果为 Hello World!
  1. 检查常量是否已定义:
if (defined("MY_CONST")) {
   echo "MY_CONST is defined!"; // 如果 MY_CONST 已定义,输出结果为 MY_CONST is defined!
}

2.2 const 常量的定义与使用

PHP中的const关键字用于定义常量,其值在定义后不能被修改。常量可以在全局范围内访问,而且是没有作用域限制的。常量的命名规则与变量相同,但是通常使用全大写字母的命名规范。以下是一个简单的使用PHP const关键字的示例:

<?php
// 定义常量
const PI = 3.14;
const SITE_NAME = "My Website";
const DB_NAME = "mydb";

echo PI; // 输出3.14
echo SITE_NAME; // 输出"My Website"
echo DB_NAME; // 输出"mydb"
?>

以上代码中,我们使用了PHP const关键字来定义三个常量PI、SITE_NAME和DB_NAME。这些常量的值在定义后不能更改,并且可以在全局范围内访问。通过调用echo函数,可以输出这些常量的值。

2.3 静态变量

PHP静态变量是指在函数内部定义的变量,但该变量是函数静态的。即每次调用该函数时,该变量的值都会保留,并且可以在函数内部被多次使用。以下是一个使用PHP静态变量的示例代码:

function countVisitors() {
    static $count = 0;
    $count++;
    echo "Number of visitors: " . $count;
}
countVisitors(); // 输出:Number of visitors: 1
countVisitors(); // 输出:Number of visitors: 2
countVisitors(); // 输出:Number of visitors: 3

在上述代码中,静态变量 $countcountVisitors() 函数内部定义。每次调用 countVisitors() 时, $count 都会自增并输出当前访问者的数量。
需要注意的是,静态变量只能在函数内部使用,并且仅在第一次调用函数时进行初始化。在以后的调用中,静态变量的值不会被重置。

2.4 超全局变量

PHP超全局变量是一些特殊的变量,它们在程序中的任何地方都可以被访问和使用,无需进行任何特殊的声明或定义。以下是PHP中可用的超全局变量以及它们的使用示例:

  1. $_SERVER 包含有关当前脚本执行的服务器和环境信息。
echo $_SERVER['SERVER_ADDR']; //输出当前服务器的IP地址
echo $_SERVER['HTTP_USER_AGENT']; //输出当前用户的浏览器信息
  1. $_GET 包含通过URL参数传递给当前脚本的所有值。
if(isset($_GET['name'])){
    echo "Hello ".$_GET['name']; //输出URL参数中传递进来的名字
}
  1. $_POST 包含通过表单提交到当前脚本的所有值。
if(isset($_POST['username']) && isset($_POST['password'])){
    $username = $_POST['username'];
    $password = $_POST['password'];
    //处理用户提交的表单数据
}
  1. $_SESSION 包含会话变量,用于在不同页面之间传递数据。
session_start();
$_SESSION['username'] = 'John Smith'; //设置会话变量
echo $_SESSION['username']; //输出会话变量
  1. $_COOKIE 包含通过浏览器存储的所有cookie值。
if(isset($_COOKIE['username'])){
    echo "Welcome back ".$_COOKIE['username']; //输出cookie中存储的用户名
}
  1. $_FILES 包含通过表单上传的所有文件信息。
if(isset($_FILES['file'])){
    $fileName = $_FILES['file']['name'];
    $fileType = $_FILES['file']['type'];
    $fileSize = $_FILES['file']['size'];
    //处理上传的文件
}
  1. $_ENV 包含当前脚本的环境变量。
echo $_ENV['PATH']; //输出当前系统的PATH环境变量

三、 条件语句

if-elseif-else 是在 PHP 中用于多条件判断的语法结构,它可以根据不同条件执行不同的代码块。下面是一个简单的例子:

$score = 75;

if ($score >= 90) {
    echo "优秀";
} elseif ($score >= 80) {
    echo "良好";
} elseif ($score >= 60) {
    echo "及格";
} else {
    echo "不及格";
}

在上面的例子中,首先定义了一个变量 $score,然后通过 if-elseif-else 语句对它进行多条件判断。如果 $score 大于等于 90,输出“优秀”;如果 $score 大于等于 80,输出“良好”;如果 $score 大于等于 60,输出“及格”;否则输出“不及格”。这样就可以根据不同的分数输出不同的评价,实现了多条件判断。

四、 Switch语句

PHP中的switch语句用于根据不同的条件执行不同的代码块。下面是一个使用switch语句的例子:

$dayOfWeek = "Monday";

switch ($dayOfWeek) {
  case "Monday":
    echo "Today is Monday";
    break;
  case "Tuesday":
    echo "Today is Tuesday";
    break;
  case "Wednesday":
    echo "Today is Wednesday";
    break;
  case "Thursday":
    echo "Today is Thursday";
    break;
  case "Friday":
    echo "Today is Friday";
    break;
  default:
    echo "It's the weekend!";
}

这个例子中,我们定义了一个变量dayOfWeek,并在switch语句中根据它的值执行不同的代码块。当dayOfWeek的值为"Monday"时,输出"Today is Monday",当dayOfWeek的值为"Tuesday"时,输出"Today is Tuesday",以此类推。如果dayOfWeek的值不匹配任何一个case,就会执行default中的代码块,输出"It’s the weekend!"。注意,在每个case的代码块末尾都要使用break来跳出整个switch语句,否则会继续执行后面的代码块,直到遇到break或switch语句结束。

五、循环语句

5.1 for循环

假设我们要打印从1到10的数字,可以使用php的for循环来实现。
代码如下:

<?php
for ($i = 1; $i <= 10; $i++) {
    echo $i . "<br>";
}
?>

上述代码中,for循环的语法结构为:

for (初始化表达式; 条件表达式; 递增/递减表达式) {
     循环体;
}

其中,初始化表达式为 $i = 1 ,即将循环变量 $i 初始化为1,条件表达式为 $i <= 10 ,即当 $i 的值小于等于10时继续循环,递增表达式为 $i++ ,即每次循环 $i 的值加1。循环体中使用 echo 输出 $i 的值,并加上换行符 <br>

5.2 while循环

以下是一个使用PHP while循环的例子:

<?php 
$count = 1;
while ($count <= 10) {
   echo "Count is: " . $count . "<br/>";
   $count++;
}
?>

这个例子中,变量count的初始值为1。在while循环中,我们首先检查count是否小于或等于10。如果条件成立,则输出当前计数的值,并将count加1。当count增加到11时,条件不再成立,while循环停止执行。因此,上面的代码将输出数字1到10。

六、数组与对象

6.1 对象

对象:对象是一种封装了相关属性和方法的数据类型。对象可以存储不同类型的数据,如字符串、数字、布尔值等等,同时也可以包含自定义函数和方法。在PHP中,对象可以通过关键字“class”定义,通过“new”关键字实例化,并通过“->”操作符来访问属性和方法。

6.2数组

数组是一种集合数据类型,它用于存储一组数据,这些数据可以是任意类型的。在PHP中,数组可以使用不同的方式定义,例如使用array()函数、[]方括号、或者使用“range()”函数等。数组可以包含单个值、键值对、多维数组等,而且还提供了一系列可以对数组进行操作的函数。PHP的数组是一种非常灵活、强大的数据类型,以下是它们的使用介绍:

  1. 定义数组:可以使用array()函数、[]方括号、或者使用“range()”函数等方式来定义一个数组。例如:
$arr1 = array(1, 2, 3); // 定义一个长度为3的数组
$arr2 = [4, 5, 6]; // 定义另一个长度为3的数组
$arr3 = range('a', 'e'); // 定义一个包含从 a 到 e 的元素的数组
  1. 访问数组元素:使用下标访问数组元素,下标从0开始。例如:
echo $arr1[0]; // 输出 1
echo $arr2[2]; // 输出 6
echo $arr3[4]; // 输出 e
  1. 添加和删除数组元素:可以使用[]运算符或array_push()函数来向数组末尾添加元素。使用unset()函数删除指定下标的元素。例如:
$arr1[] = 4; // 在 $arr1 数组末尾添加一个元素
array_push($arr2, 7); // 在 $arr2 数组末尾添加一个元素
unset($arr1[1]); // 删除 $arr1 中下标为1的元素
  1. 遍历数组:可以使用for、foreach等循环语句遍历数组。例如:
for ($i = 0; $i < count($arr1); $i++) {
    echo $arr1[$i];
}
foreach ($arr2 as $value) {
    echo $value;
}
  1. 多维数组:PHP的数组还支持多维数组,其中每个元素也可以是一个数组。例如:
$multiArr = array(
    array(1, 2, 3),
    array("a", "b", "c"),
    array(true, false),
);
echo $multiArr[0][1]; // 输出 2
echo $multiArr[1][2]; // 输出 c
echo $multiArr[2][1]; // 输出 false

七、 运算符

PHP的运算符是用于执行各种数学,逻辑和位运算操作的符号。

  1. 算术运算符:用于执行基本的数学运算,包括加法(+),减法(-),乘法(*),除法(/),取模(%)和幂运算(**)。
  2. 比较运算符:用于比较两个值的大小和类型,包括相等(),不相等(!=),全等(=),不全等(!==),大于(>),小于(<),大于或等于(>=)和小于或等于(<=)。
  3. 逻辑运算符:用于执行布尔逻辑运算,包括与(&&),或(||)和非(!)。
  4. 位运算符:用于对二进制数字进行操作,包括按位与(&),按位或(|),按位异或(^),左移(<<)和右移(>>)。
  5. 赋值运算符:用于将值赋给变量,包括等于(=),加等于(+=),减等于(-=),乘等于(*=),除等于(/=),模等于(%=),位与等于(&=),位或等于(|=),位异或等于(^=)和左移等于(<<=)右移等于(>>=)。
  6. 其他运算符:包括三元运算符(?:),执行引用运算符(&),错误控制运算符(@)和字符串连接运算符(.)。

八、函数与命名空间

8.1 函数

PHP中函数的定义与使用如下:

  1. 定义函数:
    函数定义使用 function 关键字,后面跟着函数名和括号,括号内是函数参数列表,函数代码块写在花括号内。
function functionName($param1, $param2, ..., $paramN) {
   // Function code block
}
  1. 函数参数:
    函数可以包含零个或多个参数。函数参数在括号内列出,逗号分隔。当函数被调用时,传递给函数的参数值赋值给函数参数。
  2. 调用函数:
    要调用 PHP 函数,只需要使用函数名称,后面跟着括号包含的参数列表(如果有的话)。
functionName($arg1, $arg2, ..., $argN);
  1. 返回值:
    函数可以返回一个值,该值可以是任何类型的数据,包括数组和对象。函数返回值使用 return 语句指定。
function functionName($param1, $param2) {
   $result = $param1 + $param2;
   return $result;
}
  1. 函数作用域:
    函数内部声明的变量是局部变量,它们只能在函数内部访问。函数外部声明的变量是全局变量,它们可以在函数内部和外部访问。
  2. 可变函数:
    PHP允许使用可变函数名称调用函数。这意味着函数名称可以在运行时动态更改。
$functionName = 'functionName';
$result = $functionName($arg1, $arg2);

8.2 命名空间

PHP 命名空间是一种机制,用于解决在编写类库或应用程序时创建函数和类名称冲突的问题。
简单来说,命名空间就是为了避免不同代码库之间的命名冲突而引入的一种机制。在 PHP 中,使用关键字 namespace 来声明一个命名空间,使用 \ 符号来分隔不同级别的命名空间。
例如:

namespace MyNamespace;

可以使用以下代码来引用命名空间中的类或函数:

$myObject = new MyNamespace\MyClass();

当然也可以通过 use 关键字将命名空间中的类或函数导入当前命名空间:

use MyNamespace\MyClass;

或者:

use MyNamespace\MyFunction;

命名空间还可以嵌套使用,例如:

namespace MyNamespace\SubNamespace;
class MyClass {};

在这个例子中,MyClass 类被定义在 MyNamespace\SubNamespace 命名空间下。
除此之外,PHP 还支持使用别名来给命名空间、类或函数取一个短的、易于记忆的名称。例如:

namespace MyNamespace;
use MyNamespace\SubNamespace\MyClass as SubClass;
$myObject = new SubClass();

这样,当需要使用 MyNamespace\SubNamespace\MyClass 时,只需要使用 SubClass 就可以了。

九、魔术常量和魔术方法

9.1 魔术常量

在PHP中,魔术变量是一种特殊的变量,它们用于提供关于脚本运行环境和脚本本身的信息。这些变量都是以两个下划线开头和结尾的,例如__FILE__、LINE、__CLASS__等。下面是一些常用的魔术变量:

  1. FILE:该变量的值为当前文件的完整路径和文件名。

  2. LINE:该变量的值为当前行号。在调试代码时非常有用。

  3. FUNCTION:该变量的值为当前函数的名称。

  4. CLASS:该变量的值为当前类的名称。

  5. METHOD:该变量的值为当前方法的名称。

  6. NAMESPACE:该变量的值为当前命名空间的名称。

  7. DIR:该变量的值为当前文件所在的目录。

使用这些魔术变量可以方便地获取一些关于脚本运行环境和代码本身的信息,从而方便我们进行调试和优化。注意,魔术变量不需要定义或声明,直接使用即可。

9.2 魔术方法

PHP中的魔术方法是一组特殊的函数,它们以双下划线(__)作为前缀,用于处理对象的操作。以下是几个常用的魔术方法:

  1. __construct(): 构造方法,在实例化对象时自动调用,用于初始化对象的成员属性。

  2. __destruct(): 析构方法,在对象被销毁时自动调用,用于清理对象的资源。

  3. __get(): 获取属性值时自动调用,可以用于动态获取私有属性的值。

  4. __set(): 设置属性值时自动调用,可以用于动态设置私有属性的值。

  5. __call(): 调用不存在的方法时自动调用,可以用于实现动态方法。

  6. __toString(): 把对象转换为字符串时自动调用,可以用于在输出对象时自定义格式。

  7. __clone(): 克隆对象时自动调用,可以用于实现对象的浅拷贝和深拷贝。

使用魔术方法可以使代码更加简洁、灵活,同时也可以增强代码的可读性和可维护性。但需要注意,魔术方法的使用必须遵循一定的规范和约定,否则可能会导致意想不到的结果。

总结

以上就是关于本篇文章介绍的内容PHP语言基础,后续更多内容将收录在专栏PHP快速入门与实战中,感谢大家支持。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

重感知还是重地图?其实无需选择

近来&#xff0c;关于自动驾驶应该重感知还是重地图是个热点话题&#xff0c;很多重量级车厂、自动驾驶供应商都开始提出重感知轻地图的方案&#xff0c;并承诺很快能发布出对应的产品。业界也出现了高精地图已“死”等类似的言论。 一时之间&#xff0c;似乎轻地图已经成为了…

SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解、如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁

文章目录1、步骤2、具体过程1、引入pom依赖2、修改配置文件3、单元测试4、测试结果3、redis运行情况4、项目中实际应用5、加锁解决缓存击穿问题代码一&#xff08;存在问题&#xff09;代码二&#xff08;问题解决&#xff09;6、新问题7、分布式锁1、步骤 前提条件&#xff1…

Attention is all your need——Transformer论文

摘要 此序列转录模型仅仅依赖于注意力机制&#xff0c;而不使用循环或者是卷积&#xff0c;将循环全部换成了multi-headed self- attention 介绍 RNN的特点、并行程度低。 Attention在RNN上的应用。 引入注意力机制&#xff0c;提高并行度。 背景 使用卷积对长的序列难以…

3D开发工具HOOPS最新解析合集,助力实现web端高性能模型渲染

一、3D技术为创新提供强大助力 不管您想搭建桌面、WEB或者移动端APP应用&#xff0c;技术领先全球的HOOPS Platform组件都可以为您提供弹性的3D集成架构&#xff0c;同时&#xff0c;一批可信任的工业领域3D技术专家也将为您提供技术支持服务。 如果您的客户期望有一种在多个…

第三十一天 Linux介绍和基础命令

目录 1.前言 1.1 什么是Linux 1.2 为什么要学Linux 1.3 学完Linux能干什么 2.Linux简介 2.1 主流操作系统 2.2 Linux发展历史 3. Linux安装 3.1 安装方式介绍 3.2 安装VMware 3.3 安装Linux 3.4 网卡设置 3.5 安装SSH连接工具 3.6 Linux目录结构 4.Linux常用命令…

DHTMLX Gantt入门使用教程【引入】:如何开始使用 dhtmlxGantt

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求&#xff0c;具备完善的甘特图图表库&#xff0c;功能强大&#xff0c;价格便宜&#xff0c;提供丰富而灵活的JavaScript API接口&#xff0c;与各种服务器端技术&am…

Excel玩转自然语言查询

ChatGPT火出圈&#xff0c;人类被人工智能替代又成为热门话题。有人欢喜&#xff0c;有人忧&#xff0c;也有人不以为意&#xff0c;觉得离自己工作远着呢&#xff0c;比如现在是用Excel做报表&#xff0c;有本事你动动嘴就直接把Excel里面的数据查询出来啊。 你可别说&#xf…

【题解】P4055 [JSOI2009] 游戏

link 题目大意 题目说得比较清楚。 题解 前置知识&#xff1a;二分图最大匹配、基础博弈论。 每个点只能走一次的四联通点阵&#xff0c;可以想到二分图匹配。 将其套路地奇偶分点&#xff0c;相邻两点连边&#xff08;显然不能为 #&#xff09;。 先求一个最大匹配。 …

5G/V2X赛道「重启」

在提升高阶智能驾驶安全性和感知冗余能力的道路上&#xff0c;除了激光雷达、高精度地图及定位&#xff0c;还有一项技术可能即将掀起一场新的风暴。 就在今年3月&#xff0c;作为全球通信领域的年度风向标 — 2023世界移动通信大会&#xff08;MWC&#xff09;上&#xff0c;…

基于html+css的盒子展示6

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

第七回:如何使用GirdView Widget

文章目录概念介绍使用方法示例代码经验总结我们在上一章回中介绍了Image Widget,本章回中将介绍 GirdView这种Widget&#xff0c;闲话休提&#xff0c;让我们一起Talk Flutter吧。概念介绍 在Flutter中使用GirdView表示网格状的布局&#xff0c;类似日常办公中使用的Excel,它和…

win10彻底永久关闭自动更新【亲测有效】

一、禁用Windows Update服务 1、同时按下键盘 Win R&#xff0c;打开运行对话框&#xff0c;然后输入命令 services.msc &#xff0c;点击下方的“确定”打开服务&#xff0c;如下图所示。 2、找到 Windows Update 这一项&#xff0c;并双击打开&#xff0c;如图所示。 3、右击…

MySQL-中间件mycat(二)

目录 &#x1f341;部署主从复制 &#x1f341;mycat读写分离 &#x1f342;修改配置文件 &#x1f342;设置balance与writeType &#x1f342;设置switchType与slaveThreshold &#x1f342;启动程序 &#x1f342;验证读写分离 &#x1f341;垂直拆分-分库 &#x1f342;实现…

openvpn (用户名密码模式)

目录 一、介绍 1、定义 2、原理 3、加密和身份验证 二、在centos 7.5上搭建openvpn 1、安装openvpn 和easy-rsa&#xff08;该包用来制作ca证书&#xff09; 2、配置/etc/openvpn/ 目录 3、创建服务端证书及key 4、创建客户端证书 5、把服务器端必要文件放到etc/openvpn/ 目录下…

融云出海赋能会干货回顾 | 用户增长、场景玩法、安全合规实用指南

近期&#xff0c;“纵浪潜海 2023 融云社交泛娱乐出海赋能会”在上海、广州相继举行。移步【融云全球互联网通信云】&#xff0c;回复【出海】获取PPT。 作为更专业的出海服务商&#xff0c;融云联合多家出海服务企业&#xff0c;从热门出海地区的特性洞察、玩法解决方案、技…

ElasticSearch索引文档写入和近实时搜索

一、基本概念 1.Segments In Lucene 众所周知&#xff0c;ElasticSearch存储的基本单元Shard&#xff0c;ES中一个Index可能分为多个Shard&#xff0c;事实上每个Shard都是一个Lucence的Index&#xff0c;并且每个Lucene Index由多个Segment组成&#xff0c;每个Segment事实上…

关键词词库制作-搜索词分析工具

关键词词库制作 关键词词库是一种帮助SEO和SEM优化的工具&#xff0c;它可以帮助您确定关键词的流行程度、竞争程度、搜索意图和其他相关信息等等。以下是一些关键词词库制作的方法&#xff1a; 收集关键词&#xff1a;首先需要收集相关的关键词&#xff0c;这可能涉及到您的业…

Transformer中的注意力机制及代码

文章目录1、简介2、原理2.1 什么是注意力机制2.2 注意力机制在NLP中解决了什么问题2.3 注意力机制公式解读2.4 注意力机制计算过程3、单头注意力机制与多头注意力机制4、代码4.1 代码14.2 代码21、简介 最近在学习transformer&#xff0c;首先学习了多头注意力机制&#xff0c…

[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-5 通关详解 (附靶机搭建教程)

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

[Data structure]队列环形队列 | 一文带你彻底搞懂队列和环形队列(内附详细图解和代码实现)

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现 ⭐如果觉得文章写的不错&#xff0c;欢迎点个关注一…