PHP基础二【变量/输出/数据类型/常量/字符串/运算符】

PHP基础二

  • 1. PHP变量
  • 2. PHP输出
  • 3. 数据类型
    • 3.1 字符串
    • 3.2 整型
    • 3.3 浮点型
    • 3.4 布尔型
    • 3.5 数组
    • 3.6 对象
    • 3.7 NULL
    • 3.8 资源类型
    • 3.9 类型比较
  • 4. 常量
  • 5. 运算符

1. PHP变量


1. 我们来看一个实例:

<?php$x = 5;$y = 6;$z = $x + $y;echo $z;	// echo 是输出,先照着敲
?>
  • 我们把5赋值给变量x,把6赋值给变量6,把x+y的值,赋值给变量z,最后输出z的值。

  • 在PHP中,变量用$开头创建,表示这个$后的东西是变量。

2. PHP变量规则:

  • 1)变量以 $ 符号开始,后面跟着变量的名称。
  • 2)变量名必须以字母或者下划线字符开始。
  • 3)变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )。
  • 4)变量名不能包含空格。
  • 5)变量名是区分大小写的(y 和 Y 是两个不同的变量)。

3. 创建PHP变量:

  • PHP没有声明变量的命令,变量在第一次给它赋值时即被创建。就是不能单写$x;而不给x赋值,要写就写$x = 7给它一个值(7只是随便一个数)。

  • 将字符串内容赋值给变量时,请加上双引号:

<?php$x = "hello world";
?>

4. PHP是一门弱类型语言:

  • 在上面的例子中,我们不难发现,在给变量赋值时,不需要指定变量的数据类型,编译器会根据所给的值自行判断。

  • 在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。例C语言:

int main()
{int x = 12; // 给变量x赋值时必须指定变量x的数据类型为intreturn 0;
}

5. PHP变量作用域:

  • 作用域是指变量在脚本中可被引用,使用的范围。

  • PHP有4中不同的作用域:localglobalstaticparameter

1)局部和全局作用域:

  • 在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问(先创建,再访问),要在一个函数中访问一个全局变量,需要使用 global 关键字。

  • 在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问。

  • 测试代码:

<?php$x=5; // 全局变量function myTest(){$y=10; // 局部变量global $x;	// 加关键字globalecho "<p>测试函数内变量:<p>";echo "变量 x 为: $x";	// 可以访问,需要加关键字globalecho "<br>";echo "变量 y 为: $y";} myTest();echo "<p>测试函数外变量:<p>";echo "变量 x 为: $x";	// 可以访问echo "<br>";echo "变量 y 为: $y";	// 无法访问
?>
  • 显示结果:
测试函数内变量:变量 x 为: 5
变量 y 为: 10测试函数外变量:变量 x 为: 5
变量 y 为:
  • 上面的代码中,x在所有函数外部定义,是全局变量。在函数内部访问x时,需要加关键字global声明。y是局部变量,可以在myTest函数里使用,而不能在函数外使用。

  • 你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。

  • global 关键字用于函数内访问全局变量。在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:

<?php$x=5;$y=10;function myTest(){global $x,$y;$y=$x+$y;} myTest();echo $y; // 输出 15
?>
  • PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

  • 上面的例子也可以这样写:

<?php$x=5;$y=10;echo $GLOBALS['y'];		// 输出10echo "<br>";function myTest(){$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];}myTest();echo $y;	// 输出15echo "<br>";$GLOBALS['y'] = 9; // 改变yecho $y;
?>
  • 显示结果:
10
15
9

2)static作用域:

  • 局部变量在出函数时需要被销毁,但是有时候我们不想让这个变量销毁,就需要使用static关键字,在第一次声明时使用这个关键字:
<?phpfunction myTest(){static $x=0;    // static修饰echo $x;$x++;echo "<br>"; // 换行符}myTest();myTest();myTest();
?>
  • 显示结果:
0 
1
2
  • x不断++,没有被销毁。每一次使用x时,x仍然保持原来的值。

  • 注意:x仍然是局部变量,不能在作用域之外使用。

5. 参数作用域:

  • 跟C语言中的传参差不多,但是不用写明形参的数据类型:
<?phpfunction myTest($x){echo $x;}myTest(5);
?> 

2. PHP输出


1. echo和print的区别:

  • echo可以输出一个或多个字符串。
  • print只能输出一个字符串。

注意:echo的输出速度比print快,echo没有返回值,而print的返回值总为1。

2. echo语句:

  • echo在使用时可以加上括号,也可以不加:
<?phpecho "1111";	// 加括号echo("18290");	// 不加括号
?>
  • echo可以输出多个不同类型的参数:(并且输出多个参数时不能使用括号)
<?phpecho("127".".0."."0.1"); // 中间用 . 隔开echo "<br>";echo "hello "."world";	// 中间用 . 隔开echo "<br>";$a = 1;$b = 2;// 也可以用,隔开echo $a," ",$b;	// 可以跑,有整型类型和字符串类型echo($a, $b);	// 报错
?>
  • 显示结果:
127.0.0.1
hello world
1 2
  • 输出变量:
<head><meta charset="UTF-8">	// HTML标签部分
</head>		
<?php// 创建变量$txt1="学习 PHP";$txt2="我的博客";$cars=array("Volvo","BMW","Toyota");    // 数组,后面介绍echo $txt1;echo "<br>";echo "在 $txt2 学习 PHP ";echo "<br>";echo "我车的品牌是 {$cars[0]}";
?>
  • 显示结果:
学习 PHP
在 我的博客 学习 PHP
我车的品牌是 Volvo

3. print语句:

  • print在使用时和echo相似,加不加括号都可以:
<head><meta charset="UTF-8">
</head>
<?phpprint "<h2>PHP 很有趣!</h2>";	// 可以不加括号print "Hello world!<br>";print "我要学习 PHP!";//或者print("PHP是全世界最好的语言");	// 可以加括号
?>
  • print不能一次输出多个参数:
<?php$a = "1";$b = "2";print $a,$b;         // 报错
?>
  • print显示变量:
<?php$txt1="hello world";$txt2="CSDN";$cars=array("zhangsan","lisi","wangwu");print $txt1;print "<br>";print "在 $txt2 学习 PHP ";print "<br>";print "人 {$cars[0]}";print "<br>";print "hello "."world";  // 这不叫多个类型参数,. 是字符串连接符
?>
  • 显示结果:
hello world
在 CSDN 学习 PHP
人 zhangsan
hello world

3. EOF使用说明:

  • PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。
    • 必须最后接分号,否则编译通不过。
    • EOF可以用任意其它字符代替,只需保证结束标识与开始标识一致。
    • 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
    • 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号;带单引号则不解释内嵌的变量和转义符号。
    • 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义。
<head><meta charset="UTF-8">
</head>
<?php$a = 1;echo <<<EOF"$a""hello"<br>我的第一个标题<br>我的第一个段落EOF; 
// 结束需要独立一行且前后不能空格
?>
  • 显示结果:
"1""hello"
我的第一个标题
我的第一个段落
  • 注意:
    • <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号。
    • 开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可。
    • 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符.,来拼接。

4. 其他输出函数

  • print_r:打印关于变量的易于理解的信息,如果给出的是 string、integerfloat,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。
  • var_dump:此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
  • var_dumpprint_r 的区别:var_dump 返回表达式的类型与值,而 print_r 仅返回结果,相比调试代码使用 var_dump 更便于阅读。
<head><meta charset="UTF-8">
</head>
<?php$n = 10;$a=array("Volvo", $n,"Toyota");echo $a;echo "</br>";print $a;echo "</br>";print_r($a);    // 必须带()echo "</br>";var_dump($a);   // 必须带()
?>
  • 显示结果
Array
Array
Array ( [0] => Volvo [1] => 10 [2] => Toyota )
array(3) { [0]=> string(5) "Volvo" [1]=> int(10) [2]=> string(6) "Toyota" }

3. 数据类型


PHP 支持以下几种数据类型:

  • String(字符串)
  • Integer(整型)
  • Float(浮点型)
  • Boolean(布尔型)
  • Array(数组)
  • Object(对象)
  • NULL(空值)(“”、0、NULL)
  • Resource(资源类型)(图片、文件)

3.1 字符串


1. 定义字符串

  • 可以将任何文本放在单引号和双引号中,表示一个字符串
<?php $x = "Hello world!";var_dump($x);echo "<br>"; $x = 'Hello world!';var_dump($x);
?> 
  • 显示结果:
string(12) "Hello world!"
string(12) "Hello world!"

2. 字符串并置运算符 .

  • 并置运算符.用于把两个字符串值连接起来:
<?php$txt1="Hello world!";$txt2="What a nice day!";echo $txt1." ".$txt2;
?>
  • 显示结果:
Hello world! What a nice day!

3.2 整型


1. 整型规则

  • 整型必须至少有一个数字(0~9);
  • 整型不能包含逗号或空格;
  • 整型是没有小数点的;
  • 整型可以是正数或负数;
  • 整型可以用三种格式来指定:十进制, 十六进制(以 0x 为前缀)或八进制(前缀为 0)。

2. 代码示例

<?php$x = 5985;var_dump($x);echo "<br>";$x = -345; // 负数 var_dump($x);echo "<br>";$x = 0x8C; // 十六进制数var_dump($x);echo "<br>";$x = 047; // 八进制数var_dump($x);
?>
  • 显示结果:
int(5985)
int(-345)
int(140)
int(39)

3.3 浮点型


浮点数是带小数部分的数字,或是指数形式

<?php $x = 10.365;var_dump($x);echo "<br>"; $x = 2.4e3;     // 2.4 * 10^3var_dump($x);echo "<br>"; $x = 8E-5;      // 8 * 10^-5var_dump($x);
?>

显示结果:

float(10.365)
float(2400)
float(8.0E-5)

3.4 布尔型


布尔型可以是truefalse,通常用于条件判断。

<?php$x=true;$y=false;var_dump($x,$y);
?>

显示结果:

bool(true) bool(false)

3.5 数组


数组可以在一个变量中存储多个值。和其他语言一样,可以通过下标访问。

1. 索引数组

<?php// 创建索引数组$fruits = array("Apple", "Banana", "Orange");// 或简写形式(PHP 5.4+)$fruits = ["Apple", "Banana", "Orange"];// 访问元素echo $fruits[0]."</br>"; // 输出: Apple// 添加元素$fruits[] = "Mango"; // 自动添加到最后$fruits[3] = "Grape"; // 指定索引// 遍历数组foreach ($fruits as $fruit) {echo $fruit . "</br>";}
?>
  • 显示结果:
string(5) "Apple"
string(5) "Apple"
string(6) "Banana"
bool(true)
string(5) "Grape"

2. 关联数组

<?php// 创建关联数组$person = array("name" => "John","age" => 30,"city" => "New York");// 或简写形式$person = ["name" => "John","age" => 30,"city" => "New York"];// 访问元素var_dump($person["name"]); // 输出: Johnecho "</br>";// 添加/修改元素$person["email"] = "john@example.com";// 遍历数组foreach ($person as $key => $value) {echo "$key: $value"."</br>";}
?>
  • 显示结果:
string(4) "John"
name: John
age: 30
city: New York
email: john@example.com

这里数组的遍历方式后面会讲到。


3.6 对象


首先,你必须使用class关键字声明类对象。我们在类中定义属性和方法,在实例化的类中使用属性和方法:

<?phpclass Car{public $name;// 构造函数public function __construct(){$this->name = "宝马";}public function what_color($color){return $color;}public function what_name(){return $this->name;}// 析构函数public function __destruct(){}}$color = new Car();echo $color->what_color("red");echo "</br>";echo $color->what_name();
?>
  • 显示结果:
red
宝马

这里不做过多解释了,毕竟是PHP的基础课。如果有其他语言基础的同学,很容易理解构造函数和析构函数是什么,以及他们在干什么。


3.7 NULL


NULL 值指明一个变量是否为空值。可以通过设置变量值为 NULL 来清空变量数据:

<?php$x="Hello world!";$x=null;var_dump($x);
?>

显示结果:

NULL

3.8 资源类型


一个打开文件资源的例子

  • example.txt是我们提前准备好的文件,放在和该php文件的同级目录下:
<?php// 打开文件(创建文件资源)$file = fopen("example.txt", "r");	if ($file === false) {die("无法打开文件!");}// 检查变量类型echo gettype($file)."</br>";  // 输出: resource// 读取文件内容while (!feof($file)) {echo fgets($file); // 逐行读取}// 必须手动关闭资源fclose($file);
?>
  • 显示结果:
resource
hello I am here!
  • 读出了文件中的内容,为hello I am here!

3.9 类型比较


1. 虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。

  • 松散比较:使用两个等号 == 比较,只比较值,不比较类型;
  • 严格比较:用三个等号 === 比较,除了比较值,也比较类型。

2. 例如,“42” 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 “FALSE” 是一个字符串。

<?phpheader("content-type:text/html;charset=utf-8"); //保持中文不乱码if(42 == "42") {echo '1、值相等'."</br>";}if(42 === "42") {echo '2、类型相等'."</br>";} else {echo '3、类型不相等'."</br>";}
?>
  • 显示结果:
1、值相等
3、类型不相等

3. 比较 0、false、null

<?phpecho '0 == false: ';var_dump(0 == false);echo '0 === false: ';var_dump(0 === false);echo "</br>";echo '0 == null: ';var_dump(0 == null);echo '0 === null: ';var_dump(0 === null);echo "</br>";echo 'false == null: ';var_dump(false == null);echo 'false === null: ';var_dump(false === null);echo "</br>";echo '"0" == false: ';var_dump("0" == false);echo '"0" === false: ';var_dump("0" === false);echo "</br>";echo '"0" == null: ';var_dump("0" == null);echo '"0" === null: ';var_dump("0" === null);echo "</br>";echo '"" == false: ';var_dump("" == false);echo '"" === false: ';var_dump("" === false);echo "</br>";echo '"" == null: ';var_dump("" == null);echo '"" === null: ';var_dump("" === null);
?>
  • 显示结果:
0 == false: bool(true) 0 === false: bool(false)
0 == null: bool(true) 0 === null: bool(false)
false == null: bool(true) false === null: bool(false)
"0" == false: bool(true) "0" === false: bool(false)
"0" == null: bool(false) "0" === null: bool(false)
"" == false: bool(true) "" === false: bool(false)
"" == null: bool(true) "" === null: bool(false)

4. 常量


一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。注意: 常量在整个脚本中都可以使用。

1. 设置常量

  • 设置常量,使用 define() 函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
  • 该函数有三个参数:
    • name:必选参数,常量名称,即标志符。
    • value:必选参数,常量的值。
    • case_insensitive:可选参数,如果设置为 true,该常量大小写不敏感。默认是大小写敏感的。

十分不建议定义不区分大小写的常量,该用法已在PHP8.0+中完全移除。

2. 代码实例

<?phpheader("content-type:text/html;charset=utf-8"); //保持中文不乱码// 区分大小写的常量名define("GREETING", "欢迎访问 baidu.com");echo GREETING;    // 输出 "欢迎访问 百度.com"echo '<br>';// echo greeting;   // 报错
?>
  • 显示结果:
欢迎访问 baidu.com

3. 常量是全局的,可以在脚本任何地方使用


5. 运算符


1. 算数运算符

<?php $x=10; $y=6;echo ($x + $y); // 输出16echo '<br>';  // 换行echo ($x - $y); // 输出4echo '<br>';  // 换行echo ($x * $y); // 输出60echo '<br>';  // 换行echo ($x / $y); // 输出1.6666666666667echo '<br>';  // 换行echo ($x % $y); // 输出4echo '<br>';  // 换行echo -$x;		// -10
?>

2. 赋值运算符

<?php $x=10; echo $x."</br>"; // 输出10$y=20; $y += 100;echo $y."</br>"; // 输出120$z=50;$z -= 25;echo $z."</br>"; // 输出25$i=5;$i *= 6;echo $i."</br>"; // 输出30$j=10;$j /= 5;echo $j."</br>"; // 输出2$k=15;$k %= 4;echo $k."</br>"; // 输出3
?>
  • 支持字符串的.=
<?php$a = "Hello";$b = $a . " world!";echo $b; // 输出Hello world! $x="Hello";$x .= " world!";echo $x; // 输出Hello world! 
?>

3. 递增/递减运算符

<?php$x=10; echo ++$x; // 输出11$y=10; echo $y++; // 输出10$z=5;echo --$z; // 输出4$i=5;echo $i--; // 输出5
?>

4. 比较运算符

<?php$x=100; $y="100";var_dump($x == $y);echo "<br>";var_dump($x === $y);echo "<br>";var_dump($x != $y);echo "<br>";var_dump($x !== $y);echo "<br>";$a=50;$b=90;var_dump($a > $b);echo "<br>";var_dump($a < $b);
?>
  • 显示结果:
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(true)

5. 数组运算符

<?php$x = array("a" => "red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); $d = array("b" => "green","a" => "red" ); $z = $x + $y; // $x 和 $y 数组合并var_dump($z);	// array(4) { ["a"]=> string(3) "red" ["b"]=> string(5) "green" ["c"]=> string(4) "blue" ["d"]=> string(6) "yellow" }echo "</br>";var_dump($x == $y);     // falseecho "</br>";var_dump($x === $y);    // falseecho "</br>";var_dump($x != $y);     // trueecho "</br>";var_dump($x <> $y);     // 这个也是不等于 trueecho "</br>";var_dump($x !== $y);    // trueecho "</br>";var_dump($x == $d);     // trueecho "</br>";var_dump($x === $d);    // 识别顺序 falseecho "</br>";
?>

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

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

相关文章

ue5 仿鬼泣5魂类游戏角色和敌人没有碰撞

UE5系列文章目录 文章目录 UE5系列文章目录前言一、问题原因二、设置碰撞2.读入数据 总结 前言 ue5 仿鬼泣5魂类游戏角色和敌人没有碰撞 一、问题原因 在UE5中&#xff0c;角色和敌人没有碰撞可能是由多种原因导致的&#xff0c;以下是一些可能的原因及解决方法&#xff1a…

《AdaBoost:从弱分类器到强模型的进化之路》

目录 1. AdaBoost 的核心思想 2. AdaBoost 的关键步骤 步骤 1&#xff1a;初始化样本权重 步骤 2&#xff1a;迭代训练弱分类器 步骤 3&#xff1a;组合弱分类器 3. 用例子详解 AdaBoost 数据集&#xff1a; 迭代过程&#xff1a; 第1轮&#xff08;t1&#xff09;&am…

Android Settings 有线网设置界面优化

Android Settings 有线网设置界面优化 文章目录 Android Settings 有线网设置界面优化一、前言二、简单修改1、修改的EthernetSettings代码&#xff1a;2、有线网ip获取代码&#xff1a;3、AndroidManifest.xml定义有线网的Activity4、修改后界面&#xff1a; 三、其他1、有线网…

基于web的生产过程执行管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着世界经济信息化、全球化的到来和电子商务的飞速发展&#xff0c;推动了很多行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、畅通、高效的线上管理系统。当前的生产过程执行管理存在管理效率…

XSS 攻击风险与防御实践

✅ 框架与 XSS 防护概况 框架是否默认转义高危场景建议防御措施React✅ 是使用 dangerouslySetInnerHTML避免使用&#xff0c;必要时做内容清洗Vue.js✅ 是使用 v-html避免使用&#xff0c;或使用 DOMPurify 清洗Angular✅ 是使用 innerHTML、bypassSecurityTrustHtml谨慎绕过…

Cesium 时间线 及 坐标转换

文章目录 Cesium 基础理解&#xff08;二&#xff09;TimeLine & Clock 应用场景核心代码实例及解释代码解释 Cesium 之 实体动画构建实体动画的技巧1. 利用时间属性2. 组合动画效果3. 使用动画曲线 优化点1. 减少属性更新频率2. 优化实体数量3. 合理使用材质和纹理 注意事…

ngx_regex_init

定义在 src\core\ngx_regex.c void ngx_regex_init(void) { #if !(NGX_PCRE2)pcre_malloc ngx_regex_malloc;pcre_free ngx_regex_free; #endif } NGX_PCRE21 #if !(NGX_PCRE2) 就为假 条件不成立 ngx_regex_init 函数就成了空实现 NGX_PCRE2 被定义&#xff0c;则表示 Ngin…

第二期:深入理解 Spring Web MVC [特殊字符](核心注解 + 进阶开发)

前言&#xff1a; 欢迎来到 Spring Web MVC 深入学习 的第二期&#xff01;在第一期中&#xff0c;我们介绍了 Spring Web MVC 的基础知识&#xff0c;学习了如何 搭建开发环境、配置 Spring MVC、编写第一个应用&#xff0c;并初步了解了 控制器、视图解析、请求处理流程 等核…

一文读懂数据仓库:从概念到技术落地

数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合&#xff0c;用于支持管理决策。以下是关于数据仓库的详细介绍&#xff1a; 一、特点 面向主题&#xff1a;数据仓库围绕特定主题组织数据&#xff0c;如客户、产品、销售等&#xff0c;而不是像传统数…

JavaScript学习18-css操作和事件处理程序(html/DOM0/DOM2)

一、css操作 第一种&#xff1a;容易出错 第二种&#xff1a;有效避免错误 第三种&#xff1a; 二、事件处理程序 1.HTML事件 2.DOM0级事件处理 3.DOM2级事件处理

npm设置代理和取消代理

设置代理 具体代理端口要根据自己的来 npm config set proxy http://127.0.0.1:7890 npm config set https-proxy http://127.0.0.1:7890取消代理 npm config delete proxy npm config delete https-proxy查看代理 npm config get proxy # 应返回 null npm config get…

从零开始训练Codebook:基于ViT的图像重建实践

完整代码在文末&#xff0c;可以一键运行。 1. 核心原理 Codebook是一种离散表征学习方法&#xff0c;其核心思想是将连续特征空间映射到离散的码本空间。我们的实现方案包含三个关键组件&#xff1a; 1.1 ViT编码器 class ViTEncoder(nn.Module):def __init__(self, codebo…

大数据笔试题_第一阶段配套笔试题02

已知一个字符类型的日期&#xff1a;2022-01-20&#xff0c;请用SQL显示出此日期对应的下个月的月份&#xff0c;结果要求为Number类型&#xff08;202201&#xff09;。 参考答案 sql SELECT to_date(2022-01-20, yyyy-mm-dd) a1,add_months(to_date(2022-01-20, yyyy-mm-d…

C++实现对象单例模式

在 C 中实现单例模式有多种方法&#xff0c;以下是线程安全的现代 C 实现方式&#xff08;推荐 C11 及以上版本&#xff09;&#xff1a; 1. Meyers’ Singleton&#xff08;推荐&#xff09; class Singleton { public:// 删除拷贝构造和赋值运算符Singleton(const Singleto…

企业常用Linux服务搭建

1.需要两台centos 7服务器&#xff0c;一台部署DNS服务器&#xff0c;另一台部署ftp和Samba服务器。 2. 部署DNS 服务器​ #!/bin/bash# 更新系统 echo "更新系统..." sudo yum update -y# 安装 BIND 和相关工具 echo "安装 BIND 和相关工具..." sudo y…

UE5Actor模块源码深度剖析:从核心架构到实践应用

UE5 Actor模块源码深度剖析:从核心架构到实践应用 a. UE5 Actor模块架构概述 在UE5引擎中,Actor扮演着至关重要的角色,它是整个游戏世界中各类可交互对象的基础抽象。从本质上来说,所有能够被放置到关卡中的对象都属于Actor的范畴,像摄像机、静态网格体以及玩家起始位置…

DreamDiffusion代码学习及复现

论文解读在这里 File path | Description /pretrains ┣ &#x1f4c2; models ┃ ┗ &#x1f4dc; config.yaml ┃ ┗ &#x1f4dc; v1-5-pruned.ckpt┣ &#x1f4c2; generation ┃ ┗ &#x1f4dc; checkpoint_best.pth ┣ &#x1f4c2; eeg_pretain ┃ ┗ …

用Python实现TCP代理

依旧是Python黑帽子这本书 先附上代码&#xff0c;我在原书代码上加了注释&#xff0c;更好理解 import sys import socket import threading#生成可打印字符映射 HEX_FILTER.join([(len(repr(chr(i)))3) and chr(i) or . for i in range(256)])#接收bytes或string类型的输入…

Pyinstaller 打包flask_socketio为exe程序后出现:ValueError: Invalid async_mode specified

Pyinstaller 打包flask_socketio为exe程序后出现&#xff1a;ValueError: Invalid async_mode specified 一、详细描述问题描述 Traceback (most recent call last): File "app_3.py", line 22, in <module> File "flask_socketio\__init__.py"…

django REST framework(DRF)教程

Django DRF API Django 基本使用Django DRF序列化器Django DRF视图Django DRF常用功能Django 基本使用 前后端分离开发模式认识RestFulAPI回顾Django开发模式Django REST Framework初探前后端分离开发模式 前后端分离前:前端页面看到的效果都是由后端控制,即后端渲染HTML页面…