PHP网站开发实例教程(第3版) 课件 第3章 PHP函数与数组_第1页
PHP网站开发实例教程(第3版) 课件 第3章 PHP函数与数组_第2页
PHP网站开发实例教程(第3版) 课件 第3章 PHP函数与数组_第3页
PHP网站开发实例教程(第3版) 课件 第3章 PHP函数与数组_第4页
PHP网站开发实例教程(第3版) 课件 第3章 PHP函数与数组_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章PHP函数与数组《PHP网站开发实例教程(第3版)》学习目标/Target

掌握函数的定义和调用方法,能够根据需求定义和调用函数。

掌握设置函数参数默认值的方式,能够给函数的参数设置默认值。

掌握变量的作用域,能够在函数中正确使用变量。

了解可变函数和匿名函数的概念,能够说出什么是可变函数和匿名函数。

掌握函数递归调用的实现方式,能够递归调用函数。学习目标/Target

掌握字符串函数、数学函数、时间和日期函数的使用方法,能够使用这些函数对

字符串、数值、时间和日期进行处理。

了解数组的概念,能够说出数组的分类。

掌握数组的基本使用和遍历,能够定义、新增、访问、删除和遍历数组。

掌握数组和字符串的转换方法,能够使用explode()函数和implode()函数完成数组

和字符串的转换。

掌握基本数组函数、数组排序函数和数组检索函数的使用方法,能够使用这些函数

完成对数组的合并、分割、排序和检索。章节概述/Summary在PHP中,函数用于封装重复使用的代码。将代码封装成函数后,在实现相同的功能时,直接调用函数即可。使用函数可以避免编写重复的代码,不仅可减少工作量,也有利于代码的维护。数组用于存储一组数据,从而方便开发人员对一组数据进行批量处理。利用数组函数可以实现数组的遍历、排序和检索等操作。本章将对函数和数组进行详细讲解。目录/Contents3.13.23.3函数数组常用数组函数函数3.1

先定一个小目标!掌握函数的定义和调用,能够根据需求定义和调用函数。3.1.1函数的定义和调用在PHP中,开发人员可以根据功能需求定义函数。语法格式function函数名([参数1,参数2,…]){

函数体}3.1.1函数的定义和调用function是声明函数使用的关键字,不能省略。函数名的命名规则与标识符相同,且函数名唯一,不能重复。参数是外部传递给函数的值,它是可选的,多个参数之间使用英文逗号“,”分隔。函数体是实现指定功能的代码,在函数体中使用return关键字返回函数的返回值。当函数定义好后,若要使用函数,需要对函数进行调用。语法格式函数名([参数1,参数2,…])3.1.1函数的定义和调用定义sum()函数实现求两个数的和:functionsum($a,$b){$result=$a+$b;return$result; //返回执行结果}echosum(23,45); //调用函数,输出结果:683.1.1函数的定义和调用

先定一个小目标!掌握设置函数参数的默认值的方式,能够给函数的参数设置默认值。3.1.2设置函数参数的默认值定义函数时为函数的参数设置默认值,调用函数时未传递参数,则会使用参数的默认值。设置函数参数默认值的示例代码:functionsay($p,$con='says"Hello"'){return"$p$con";}echosay('Tom'); //输出结果:Tomsays"Hello"注意:函数参数设置默认值后,该参数就是可选参数,可选参数必须放在非可选参数的右侧。3.1.2设置函数参数的默认值如果需要在函数中修改参数值,可以通过函数参数的引用传递来实现,即引用传参,在参数前添加&符号即可。多学一招:引用传参引用传参functionextra(&$var){$var='fruit';}$var='food';extra($var);echo$var; //输出结果:fruit

先定一个小目标!掌握变量的作用域,能够在函数中正确使用变量。3.1.3变量的作用域变量只有在定义后才能够被使用,但这并不意味着定义变量后就可以随时使用变量。变量只可以在其作用范围内被使用,这个作用范围称为变量的作用域。在函数中定义的变量称为局部变量,在函数外定义的变量称为全局变量。函数执行完毕后,局部变量会被释放。3.1.3变量的作用域局部变量和全局变量的使用:functiontest(){$sum=36; //局部变量

return$sum;}$sum=0; //全局变量echotest(); //输出结果:36echo$sum; //输出结果:03.1.3变量的作用域如果想在函数执行完毕后依然保留局部变量的值,利用static关键字在函数中将变量声明为静态变量。定义实现计数功能的函数num():多学一招:静态变量静态变量functionnum(){

static$i=1;echo$i;++$i;}第1次调用num()函数输出1,第2次调用num()函数输出2,依次类推

先定一个小目标!了解可变函数的概念,能够说出什么是可变函数。3.1.4可变函数在程序中,当需要根据运行时的条件或参数来动态选择要调用的函数时,可以使用可变函数。可变函数是在变量名的后面添加小括号“()”,让其变成函数的形式,PHP会自动寻找与变量值同名的函数,并且尝试执行它。3.1.4可变函数应用可变函数的示例代码:functionshout(){echo'comeon';}$funcname='shout'; //定义变量,其值是函数的名称echo$funcname(); //调用可变函数3.1.4可变函数在PHP中,有一些语言构造器的用法和函数相似,但是语言构造器不能通过可变函数的方式调用。常用的语言构造器:脚下留心:区分语言构造器和函数区分语言构造器和函数echoprintexitdieincluderequireinclude_oncerequire_onceissetunsetarraylist

先定一个小目标!3.1.5匿名函数了解匿名函数的概念,能够说出什么是匿名函数。匿名函数就是没有函数名称的函数,使用匿名函数无须考虑函数命名冲突的问题。$sum=function($a,$b){ //定义匿名函数

return$a+$b;};echo$sum(100,200); //输出结果:300在匿名函数中通过use关键字使用外部的变量:$c=100;$sum=function($a,$b)use($c){return$a+$b+$c;};echo$sum(100,200); //输出结果:4003.1.5匿名函数匿名函数还可以作为回调函数使用。回调函数是一种特殊的函数,它可以作为参数传递给其他函数,并在特定事件发生或特定条件满足时被调用。functioncalculate($a,$b,$func){return$func($a,$b);}echocalculate(100,200,function($a,$b){ //输出结果:300return$a+$b;});echocalculate(100,200,function($a,$b){ //输出结果:20000return$a*$b;});匿名函数作为回调函数使用,可以增强函数的灵活性和可扩展性3.1.5匿名函数

先定一个小目标!掌握递归调用函数的实现方式,能够使用递归调用函数。3.1.6函数的递归调用递归是指在一个函数体中调用自身的过程,这种函数称为递归函数。通过函数的递归调用演示求4的阶乘:functionfactorial($n){if($n==1){return1;}return$n*factorial($n-1);}echofactorial(4); //输出结果:24当$n不等于1时,递归调用当前变量$n乘以factorial($n-1),直到$n等于1时,返回1。factorial()函数的计算过程为4×3×2×1=24。3.1.6函数的递归调用

先定一个小目标!掌握字符串函数的使用,能够使用这用这些函数对字符串进行处理。3.1.7字符串函数在开发程序时,经常会涉及对字符串的处理。例如,获取用户名称的首字母、判断用户输入数据的长度等。为此,PHP提供了字符串函数,以满足不同的需求。3.1.7字符串函数常用的字符串函数:函数功能描述strlen(string$string)获取字符串的长度strpos(string$haystack,string$needle,int$offset=0)获取指定字符串在目标字符串中首次出现的位置strrpos(string$haystack,string$needle,int$offset=0)获取指定字符串在目标字符串中最后一次出现的位置str_replace(string$search,string$replace,string$subject,int$count)对字符串中的某些字符进行替换substr(string$string,int$start,int$length=null)获取字符串的子串3.1.7字符串函数1/2常用的字符串函数:函数功能描述explode(string$separator,string$string,int$limit=PHP_INT_MAX)使用指定的分割符将目标字符串分割,分割结果是数组implode(string$separator,array$array)使用指定的连接符将数组中的元素拼接成字符串trim(string$string,string$characters)去除字符串首尾处的空白字符(或指定的字符串)str_repeat(string$string,int$times)重复字符串strcmp(string$string1,string$string2)比较两个字符串的大小3.1.7字符串函数2/21.strlen()函数strlen()函数获取字符串的长度,该函数的返回值类型是整型。在计算长度时,一个英文字符、一个空格的长度都是1;中文字符的长度取决于字符集,在UTF-8字符集中一个中文字符的长度为3,在GBK字符集中一个中文字符的长度为2。echostrlen('abc'); //输出结果:3echostrlen('中国'); //输出结果:6echostrlen('PHP'); //输出结果:53.1.7字符串函数2.substr()函数substr()函数用于获取字符串的子串,该函数的第1个参数是待处理的字符串,第2个参数是字符串开始截取的位置,第3个参数是截取字符串的长度。substr()函数的第2个参数和第3个参数的使用说明:第2个参数为负数n时,表示从待处理字符的结尾处向左数第|n|个字符开始。省略第3个参数时,表示截取到字符串的结尾。第3个参数为负数n时,表示从截取后的字符串的末尾处去掉|n|个字符。echosubstr('welcome',3); //输出结果:comeechosubstr('welcome',0,2); //输出结果:weechosubstr('welcome',3,-1); //输出结果:comechosubstr('welcome',-4,-1); //输出结果:com3.1.7字符串函数3.str_replace()函数str_replace()函数用于对字符串中的字符进行替换操作,第1个参数表示目标字符串;第2个参数表示替换字符串;第3个参数表示执行替换的字符串;第4个参数是可选参数,用于保存字符串被替换的次数。echostr_replace('e','E','welcome',$count); //输出结果:wElcomEecho$count; //输出结果:23.1.7字符串函数4.strcmp()函数strcmp()函数用于比较两个字符串,根据字符的ASCII值进行比较。该函数的两个参数是待比较的字符串,函数的返回值有-1、0、1,具体介绍如下。当第一个字符串小于第二个字符串时,返回结果为-1。当第一个字符串等于第二个字符串时,返回结果为0。当第一个字符串大于第二个字符串时,返回结果为1。print_r(strcmp('A','a')); //输出结果:-1print_r(strcmp('A','A')); //输出结果:0print_r(strcmp('a','A')); //输出结果:13.1.7字符串函数

先定一个小目标!3.1.8数学函数掌握数学函数的使用,能够使用这些函数对数值进行处理。在开发程序时,经常会涉及对数据的运算。例如,对一个数进行四舍五入、求绝对值等。为此,PHP提供了数学函数,以满足不同的需求。3.1.8数学函数常用的数学函数:函数功能描述函数功能描述abs(int|float$num)绝对值min(mixed$value,…)返回最小值ceil(int|float$num)向上取最接近的整数pi()返回圆周率的值floor(int|float$num)向下取最接近的整数pow(mixed$num,mixed$exponent)返回数的幂fmod(float$num1,float$num2)返回除法运算的浮点数余数sqrt(float$num)返回数的平方根is_nan(float$num)判断是否为合法数值round(int|float$num,int$precision=0,int$mode)对浮点数进行四舍五入max(mixed$value,…)返回最大值rand(int$min,int$max)返回随机整数3.1.8数学函数数学函数的使用方法:echoceil(5.2); //输出结果:6echofloor(7.8); //输出结果:7echorand(1,20); //随机输出1到20之间的整数3.1.8数学函数

先定一个小目标!3.1.9时间和日期函数掌握时间和日期函数的使用,能够使用这些函数对时间和日期进行处理。在开发Web应用程序时,经常会涉及对时间和日期的处理。例如,倒计时、用户登录时间、订单创建时间等。为此,PHP提供了时间和日期函数,以满足不同的需求。3.1.9时间和日期函数常用的时间和日期函数:函数功能描述time()获取当前的UNIX时间戳date(string$format,int$timestamp)格式化UNIX时间戳mktime(int$hour,int$minute=null,int$second=null,int$month=null,int$day=null,int$year=null)获取指定日期的UNIX时间戳strtotime(string$datetime,int$baseTimestamp)将字符串转化成UNIX时间戳microtime(bool$float)获取当前UNIX时间戳和微秒数3.1.9时间和日期函数时间和日期函数的使用方法:echotime(); //输出结果:1687311094echodate('Y-m-d'); //输出结果:2023-06-21echomicrotime(); //输出结果:0.391463001687311094echomicrotime(true); //输出结果:1687311094.39153.1.9时间和日期函数

先定一个小目标!掌握函数的使用,能够根据需求实现获取文件扩展名。3.1.10【案例】获取文件扩展名在实现文件上传功能时,经常需要判断用户上传的文件类型,以确保其符合要求。例如,某网站只允许上传JPG格式的商品图片,因此需要获取上传文件的扩展名进行判断。下面通过自定义函数和字符串函数来实现获取文件扩展名的功能。

案例需求3.1.10【案例】获取文件扩展名①创建自定义函数,获取文件的扩展名,该函数接收一个参数,用于传递文件的名称。②在函数体内使用字符串函数来获取文件的扩展名。首先使用strrpos()函数获取文件名中最后一个“.”出现的位置,然后使用substr()函数截取从该位置到字符串末尾的内容,最后使用return关键字返回函数的处理结果。③定义变量保存需要处理的文件名,调用自定义函数时传入该变量,将自定义函数的处理结果保存到另一个变量中。④将处理结果输出到页面,并运行程序查看获取的文件扩展名。

实现思路3.1.10【案例】获取文件扩展名数组3.2

先定一个小目标!了解数组的概念,能够说出数组的分类。3.2.1初识数组数组是用于存储一组数据的集合。数组中的数据称为数组元素,每个数组元素由键(Key)和值(Value)构成。其中,键用于唯一标识数组元素;值为数组元素的内容。3.2.1初识数组数组分类索引数组关联数组3.2.1初识数组根据数组中键的数据类型划分:键的数据类型为整型,索引数组的键默认从0开始,并依次递增,也可以自己指定键。键的数据类型为字符串型,关联数组的键和值之间有一定的业务逻辑。数组分类一维数组三维数组3.2.1初识数组根据数组的维度划分:数组元素的值是非数组的数据二维数组……数组元素的值是一个一维数组数组元素的值是一个二维数组,也被称为多维数组

先定一个小目标!掌握数组的基本使用,能够定义、新增、访问、删除数组。3.2.2数组的基本使用1.定义数组使用array()语言构造器和短数组定义法定义数组。(1)array()语言构造器使用array()语言构造器定义数组,将数组元素放在小括号中,键和值使用=>连接,数组元素之间使用逗号分隔。定义索引数组时可以省略键和=>,PHP会自动为索引数组添加从0开始的键。$info=array('id'=>1,'name'=>'Tom');$fruit=array(1=>'apple',3=>'pear');$num=array(1,4,7,9);$mix=array('tel'=>110,'help',3=>'msg');3.2.2数组的基本使用(2)短数组定义法短数组定义法将array()替换为“[]”。$info=['id'=>1,'name'=>'Tom'];$num=[1,4,7,9];定义数组时需要注意以下两点:数组元素的键可以是整型和字符串型,如果是其他类型,则会进行数据类型转换。浮点型和布尔型会被转换成整型,NULL会被转换成空字符串。若数组存在相同的键,后面的元素值会覆盖前面的元素值。3.2.2数组的基本使用2.新增数组元素通过直接值赋给数组变量来新增数组元素。当不指定数组元素的键时,键默认从0开始,依次递增。当指定数组元素的键时,会使用指定的键。如果再次添加数组元素没有指定键,会自动将数组元素的最大整数键加1。$arr[]='PHP'; //赋值结果:$arr[0]='PHP'$arr[]='Java'; //赋值结果:$arr[1]='Java' $arr[3]='C语言'; //赋值结果:$arr[3]='C语言'$arr[5]='C++'; //赋值结果:$arr[5]='C++'$arr['sub']='iOS'; //赋值结果:$arr['sub']='iOS'$arr[]='网页平面'; //赋值结果:$arr[6]='网页平面'3.2.2数组的基本使用3.访问数组元素数组元素的键是数组元素的唯一标识,通过数组元素的键可以获取该元素的值。$info=['id'=>1,'name'=>'Tom'];echo$info['id']; //输出结果:1echo$info['name']; //输出结果:Tom数组元素比较多时,可以使用print_r()或var_dump()输出数组中的所有元素。$info=['id'=>1,'name'=>'Tom'];print_r($info);//输出结果:Array([id]=>1[name]=>Tom)var_dump($info);//输出结果:array(2){["id"]=>int(1)["name"]=>string(3)"Tom"}3.2.2数组的基本使用4.删除数组元素unset()语言构造器既可以删除数组中的某个元素,又可以删除整个数组。$fruit=['apple','pear'];unset($fruit[1]);print_r($fruit); //输出结果:Array([0]=>apple)unset($fruit);print_r($fruit); //输出结果:Warning:Undefinedvariable:$fruit…3.2.2数组的基本使用多学一招:判断数组元素是否存在判断数组元素是否存在使用数组中的某个元素时,如果元素不存在,运行程序会出现错误。使用isset()语言构造器判断数组元素是否存在,函数返回值true表示元素存在,false表示元素不存在。$fruit=['apple','pear'];unset($fruit[1]);var_dump(isset($fruit[1]));//输出结果:bool(false)

先定一个小目标!3.2.3遍历数组掌握数组的遍历,能够使用foreach()语句遍历数组。遍历数组是指依次访问数组中的每个元素,通常使用foreach语句遍历数组。3.2.3遍历数组语法格式1foreach(待遍历的数组as$key=>$value){

循环体}语法格式2foreach(待遍历的数组as$value){

循环体}当不需要使用数组的键时,可以省略$key使用foreach遍历数组:$fruit=['apple','pear'];foreach($fruitas$key=>$value){ echo$key.'-'.$value.''; //输出结果:0-apple1-pear}3.2.3遍历数组

先定一个小目标!掌握数组和字符串的转换方法,能够使用explode()函数和implode()函数完成转换。3.2.4数组和字符串的转换在PHP开发中,灵活使用数组可以提高程序开发效率。数组和字符串的转换的两个操作:将字符串分割成数组将数组合并成字符串通过explode()函数和implode()函数可以实现这两个操作,下面讲解这两个函数的使用。3.2.4数组和字符串的转换1.explode()函数explode()函数使用分割符将目标字符串分割,第1个参数是分割符,不能为空字符串;第2个参数是目标字符串;第3个参数是可选参数,表示返回的数组中最多包含的元素个数,该参数的值有3种情况,具体介绍如下:当其为正数m时,返回数组中的m个元素。当其为负数n时,返回除最后的|n|个元素外的所有元素。当其为0时,则把它当作1处理。3.2.4数组和字符串的转换var_dump(explode('n','banana'));//输出结果:array(3){[0]=>string(2)"ba"[1]=>string(1)"a"[2]=>string(1)"a"}1使用目标字符串中存在的字符当作分割符var_dump(explode('c','banana'));//输出结果:array(1){[0]=>string(6)"banana"}2使用目标字符串中不存在的字符当作分割符3.2.4数组和字符串的转换var_dump(explode('n','banana',2));//输出结果:array(2){[0]=>string(2)"ba"[1]=>string(3)"ana"}3explode()函数的第3个参数是正数var_dump(explode('n','banana',-2));//输出结果:array(1){[0]=>string(2)"ba"}4explode()函数的第3个参数是负数var_dump(explode('n','banana',0));//输出结果:array(1){[0]=>string(6)"banana"}5explode()函数的第3个参数为03.2.4数组和字符串的转换2.implode()函数implode()函数用于通过指定的连接符将数组中的元素拼接成字符串,该函数的第1个参数是连接符,第2个参数是待处理的数组。示例代码$arr=[1,2,3];var_dump(implode(',',$arr)); //输出结果:string(5)"1,2,3"3.2.4数组和字符串的转换

先定一个小目标!掌握数组的使用,能够根据需求实现订货单。3.2.5【案例】订货单实现订货单功能,使用数组保存商品信息,计算出每类商品的总价和所有商品的总价,在页面输出商品信息、单价和总价。

案例需求379元购买3个799元购买2个589元购买5个主板显卡硬盘3.2.5【案例】订货单①创建order.php,定义数组保存商品的名称、单价、产地和购买数量。②使用foreach语句遍历数组,并将其显示在表格中。③计算每类商品的总价和所有商品的总价,输出到页面中。

实现思路3.2.5【案例】订货单常用数组函数3.3

先定一个小目标!掌握基本数组函数的使用,能够使用这些数组完成对数组的合并、分割等操作。3.3.1基本数组函数PHP常用的基本数组函数有count()、range()、array_merge()、array_chunk()等。下面对这些基本数组函数进行讲解。3.3.1基本数组函数1.count()函数count()函数计算数组中元素的个数,第1个参数是要计算的数组。第2个参数是计算的维度,默认值0表示计算一维数组的元素个数;1表示计算二维数组的元素个数,依此类推。示例代码$stu=[['Tom','male',18],['Alice','female',15],['Julia','female',14]];echocount($stu); //输出结果:3echocount($stu,1); //输出结果:123.3.1基本数组函数2.range()函数range()函数根据范围创建数组,通常使用字母或数字指定范围,第1个参数是起始值;第2个参数是结束值;第3个参数是可选参数,用于定义起始值和结束值的增量,默认为1。示例代码$arr=range('a','c');print_r($arr);//输出结果:Array([0]=>a[1]=>b[2]=>c)$data=range(0,10,3);print_r($data);//输出结果:Array([0]=>0[1]=>3[2]=>6[3]=>9)3.3.1基本数组函数3.array_merge()函数array_merge()函数用于合并一个或多个数组,如果合并的数组中有相同的字符串键名,则后面的值覆盖前面的值;如果合并的数组中有相同的数字键名,将之附加到合并结果中。示例代码$arr1=['food'=>'tea',2,4];$arr2=['a','food'=>'Cod','type'=>'jpg',4];$result=array_merge($arr1,$arr2);//输出结果:Array([food]=>Cod[0]=>2[1]=>4[2]=>a[type]=>jpg[3]=>4)print_r($result);3.3.1基本数组函数4.array_chunk()函数array_chunk()函数将一个数组分割成多个,第1个参数是待分割数组,第2个参数是分割后每个数组中元素的个数,第3个参数指定是否保留原数组的键名,默认值false表示不保留原数组键名,分割后数组的键从0开始,值为true表示保留待分割数组中原有的键名。示例代码$arr=['one'=>1,'two'=>2,'three'=>3];//输出结果:Array([0]=>Array([0]=>1[1]=>2)[1]=>Array([0]=>3))print_r(array_chunk($arr,2));//输出结果:Array([0]=>Array([one]=>1[two]=>2)[1]=>Array([three]=>3))print_r(array_chunk($arr,2,true));3.3.1基本数组函数

先定一个小目标!3.3.2数组排序函数掌握数组排序函数的使用,能够使用这些函数完成数组排序。通常对数组排序,需要先遍历数组,再比较数组中的每个元素,最终完成数组的排序。为了方便对数组排序,PHP内置了数组排序函数,不需要遍历数组即可完成排序。3.3.2数组排序函数常用的数组排序函数:函数功能描述sort(array$array,int$flags)对数组升序排列rsort(array$array,int$flags)对数组降序排列ksort(array$array,int$flags)根据数组键名升序排列krsort(array$array,int$flags)根据数组键名降序排列asort(array$array,int$flags)对数组升序排列并保持索引关系arsort(array$array,int$flags)对数组降序排列并保持索引关系shuffle(array$array)打乱数组顺序array_reverse(array$array,bool$preserve_keys)返回元素顺序相反的数组3.3.2数组排序函数使用sort()函数和rsort()函数演示数组排序:$arr=['dog','lion','cat'];sort($arr);print_r($arr); //输出结果:Array([0]=>cat[1]=>dog[2]=>lion)rsort($arr);print_r($arr); //输出结果:Array([0]=>lion[1]=>dog[2]=>cat)3.3.2数组排序函数

先定一个小目标!3.3.3数组检索函数掌握数组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论