《PHP+MySQL动态网站开发》 课件-第3章 PHP函数与数组_第1页
《PHP+MySQL动态网站开发》 课件-第3章 PHP函数与数组_第2页
《PHP+MySQL动态网站开发》 课件-第3章 PHP函数与数组_第3页
《PHP+MySQL动态网站开发》 课件-第3章 PHP函数与数组_第4页
《PHP+MySQL动态网站开发》 课件-第3章 PHP函数与数组_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

第3章PHP函数与数组《PHP+MySQL动态网站开发》学习目标/Target熟悉函数的定义和使用方法熟悉PHP内置字符串函数和数学函数的使用方法掌握数组的定义和使用方法掌握常用数组函数的用法掌握文件包含语句和替代语句的使用方法章节概述/Summary函数就是将一些需要多次使用的代码封装起来,在用到的时候进行调用,从而避免相同功能代码的重复编写。这样的方式不仅减少了工作量,也有利于代码的维护。数组用于对一批数据进行批量处理,利用常用的数组函数可实现数组遍历、数组排序、数组检索等操作。本章将对函数和数组的相关知识进行详细讲解。目录/Contents01020304函数数组常用数组函数文件包含语句05替代语法函数3.13.1.1自定义函数

先定一个小目标!掌握自定义函数的语法,能够将重复使用的代码封装成函数3.1.1自定义函数自定义函数:由关键字function、函数名、参数、函数体4部分组成。function:声明函数的关键字。函数名:命名规则与标识符相同,且函数名是唯一的,不能重复。参数:外界传递给函数的值,是可选的,有多个参数时使用英文逗号“,”分隔。函数体:专门用于实现特定功能的代码。3.1.1自定义函数自定义函数:function函数名([参数1,参数2,…]){

函数体}语法格式3.1.1自定义函数调用自定义函数:只需引用函数名,并传入相应的参数即可。函数名([参数1,参数2,…])语法格式3.1.1自定义函数自定义函数的返回值:使用return关键字将函数的返回值传递给调用者。//定义sum()函数求两个数的和functionsum($a,$b){ $result=$a+$b;

return$result; //返回处理结果}echosum(23,45); //输出调用函数后的结果案例:自定义函数求两个数的和3.1.2设置参数默认值

先定一个小目标!熟悉如何设置参数的默认值,能够实现函数可选传参3.1.2设置参数默认值设置参数默认值:设置函数参数时,可以指定默认值,设置默认值后该参数也称为可选参数。functionsay($p,$con='say"Hello"'){ return"$p$con";}echosay('Tom'); //输出结果:Tomsay"Hello"注意:在设置参数默认值时,可选参数必须放在必选参数的右侧。代码示例3.1.2设置参数默认值多学一招:引用传参引用传参:在参数前添加“&”符号,通过函数参数的引用传递修改参数值。functionextra(&$str){ $str.='andsomeextra';}$var='food';extra($var);echo$var; //输出结果:foodandsomeextra代码示例3.1.3变量的作用域

先定一个小目标!熟悉变量的作用域,能够说出局部变量和全局变量的区别3.1.3变量的作用域变量的作用域:只有在其作用范围内才可以被使用。在函数中定义的变量称为局部变量,在函数外定义的变量称为全局变量。functiontest(){ $sum=36; //局部变量 return$sum;}$sum=0; //全局变量echotest(); //输出结果:36echo$sum; //输出结果:0代码示例3.1.3变量的作用域多学一招:静态变量静态变量:使用static关键字在函数中声明,函数执行完成后保留局部变量的值。functionnum(){

static$i=1; echo$i; ++$i;}代码示例3.1.4可变函数

先定一个小目标!熟悉可变函数的使用,能够通过可变函数的方式调用函数3.1.4可变函数可变函数:在变量名后添加一对圆括号“()”变成函数形式,执行与变量值同名的函数。functionshout(){ echo'comeon....';}$funcname='shout'; //定义变量,其值是函数的名称echo$funcname(); //利用可变变量调用函数可变函数代码示例3.1.5匿名函数

先定一个小目标!掌握匿名函数的使用,能够定义和调用匿名函数3.1.5匿名函数匿名函数:没有函数名称的函数,也称作闭包函数,经常用作回调函数参数的值。$sum=function($a,$b){ //定义匿名函数 return$a+$b;};echo$sum(100,200); //输出结果:300匿名函数代码示例3.1.5匿名函数在匿名函数中使用外部的变量:通过use关键字实现。$c=100;$sum=function($a,$b)use($c){ return$a+$b+$c;};echo$sum(100,200); //输出结果:400匿名函数中使用外部变量代码示例3.1.5匿名函数匿名函数实现回调函数:将匿名函数作为函数的参数传递。functioncalculate($a,$b,$func){ return$func($a,$b);}echocalculate(100,200,function($a,$b){ //输出结果:300 return$a+$b;});echocalculate(100,200,function($a,$b){ //输出结果:20000 return$a*$b;});匿名函数实现回调函数代码示例3.1.6字符串函数

先定一个小目标!掌握字符串函数的使用,能够对字符串进行长度获取、查找内容、截取子串、字符替换等操作3.1.6字符串函数函数名称功能描述strlen()获取字符串的长度strpos()在指定字符串中查找目标字符串首次出现的位置strrpos()获取指定字符串在目标字符串中最后一次出现的位置str_replace()用于对字符串中的某些字符进行替换操作substr()用于获取字符串中的子串explode()将指定字符串拆分成数组implode()用指定的分隔符将数组中的键值拼接成字符串trim()去除字符串首尾处的空白字符(或指定的字符串)str_repeat()重复字符串strcmp()比较两个字符串的大小字符串函数:是PHP的内置函数,用于操作字符串。3.1.6字符串函数echostrlen('abc'); //输出结果:3echostrrpos('itcast','a'); //输出结果:3echosubstr('welcome',3); //输出结果:comeechostr_replace('e','E','welcome',$count);//输出结果:wElcomEecho$count; //输出结果:2案例:字符串函数使用示例3.1.7数学函数

先定一个小目标!掌握数学函数的使用,能够对数字进行向上取整、向下取整、求随机数等操作3.1.7数学函数函数名功能描述函数名功能描述abs()绝对值min()返回最小值ceil()向上取最接近的整数pi()返回圆周率的值floor()向下取最接近的整数pow()返回x的y次方fmod()返回除法的浮点数余数sqrt()返回一个数的平方根is_nan()判断是否为合法数值round()对浮点数进行四舍五入max()返回最大值rand()返回随机整数数学函数:PHP的内置函数,方便处理程序中的数学运算。3.1.7数学函数echoceil(5.2); //输出结果:6echofloor(7.8); //输出结果:7echorand(1,20); //随机输出1到20间的整数案例:数学函数使用示例3.1.8时间和日期函数

先定一个小目标!掌握时间和日期函数的使用,能够实现时间戳获取、时间格式化、毫秒时间获取等操作3.1.8时间和日期函数函数名功能描述time()获取当前的UNIX时间戳date()格式化一个本地时间/日期mktime()获取指定日期的UNIX时间戳strtotime()将字符串转化成UNIX时间戳microtime()获取当前UNIX时间戳和微秒数时间和日期函数:PHP的内置函数,用于处理日期和时间。3.1.8时间和日期函数echotime(); //输出结果:1582793102echodate('Y-m-d'); //输出结果:2020-02-27echomicrotime(); //输出结果:0.464484001582793102echomicrotime(true);//输出结果:1582793102.4645案例:时间和日期函数使用示例3.1.9【案例】获取文件扩展名

先定一个小目标!掌握获取文件扩展名案例,能够实现根据一个文件路径字符串获取文件的扩展名3.1.9【案例】获取文件扩展名需求分析在开发文件上传功能时,经常需要判断用户上传文件的类型,看其是否符合要求。例如,网站只允许用户上传JPG格式的商品图片,需要使用PHP来获取上传文件的扩展名。通过自定义函数和字符串函数实现获取文件扩展名的功能。substr($path,strrpos($path,'.')+1)数组3.23.2.1初识数组

先定一个小目标!熟悉数组的基本概念,能够说出数组的组成,能够说出关联数组和索引数组的区别3.2.1初识数组数组:存储一组数据的集合,数组中的数据称为数组元素,数组元素由“键=>值”表示,多个元素使用“,”分隔。键:数组元素的识别名称,也称数组下标,键是整型的数组称为索引数组,键是字符串型的数组称为关联数组。值:数组元素的内容。$arr1=[0=>'张三',1=>29]; //索引数组$arr2=['name'=>'张三','age'=>29]; //关联数组索引数据和关联数组代码示例3.2.2数组的使用

先定一个小目标!掌握数组的使用方法,能够实现数组的定义和数组元素的新增、访问、删除、判断等操作3.2.2数组的使用定义数组的两种方式:array()语言结构、短数组定义法。//使用array()定义数组$info=array('id'=>1,'name'=>'Tom');$fruit=array(1=>'apple',3=>'pear');//使用短数组定义数组$info=['id'=>1,'name'=>'Tom'];$num=[1,4,7,9];定义数组定义数组代码示例新增数组元素:创建一个数组变量,使用赋值运算符直接给变量赋值。3.2.2数组的使用$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数组的使用$info=['id'=>1,'name'=>'Tom'];//输出结果:Tomecho$info['name']; //输出结果:Array([id]=>1[name]=>Tom)print_r($info);//输出结果:array(2){["id"]=>int(1)["name"]=>string(3)"Tom"}var_dump($info);访问数组:通过数组的键来访问数组元素。访问数组访问数组代码示例3.2.2数组的使用$fruit=['apple','pear'];unset($fruit[1]);print_r($fruit); //输出结果:Array([0]=>apple)unset($fruit);print_r($fruit); //输出结果:Notice:Undefinedvariable:fruit...删除数组:使用unset语言结构可以删除数组中的某个元素,也可以删除整个数组。删除数组删除数组代码示例3.2.2数组的使用$fruit=['apple','pear'];unset($fruit[1]);var_dump(isset($fruit[1])); //输出结果:bool(false)判断数组元素是否存在:使用isset()语言结构判断数组中的元素是否存在,返回结果为布尔值。判断数组元素是否存在判断数组元素代码示例3.2.3数组遍历

先定一个小目标!掌握数组的遍历,能够编写程序依次访问数组中的每一个元素3.2.3数组遍历数组遍历:依次访问数组中的每个元素,通常使用foreach语句。$fruit=['apple','pear'];foreach($fruitas$key=>$value){ echo$key.'-'.$value.''; //输出结果:0-apple1-pear}数组遍历代码示例3.2.4数组和字符串的转换

先定一个小目标!掌握数组和字符串的转换,能够实现数组和字符串之间的互相转换3.2.4数组和字符串的转换数组和字符串之间转换使用的函数:3.2.4数组和字符串的转换explode()函数:使用字符串分割另一个字符串,返回数组。第1个参数是分隔符,第2个参数是要分割的字符串,第3个是可选参数,表示返回结果最多包含的元素个数,当为负数m时,返回除最后m个元素外的所有元素,当为0时,则把它当做1处理。explode()函数3.2.4数组和字符串的转换//①使用“n”作为分隔符对字符串进行分割//输出结果:array(3){[0]=>string(2)"ba"[1]=>string(1)"a"[2]=>string(1)"a"}var_dump(explode('n','banana'));//②第3个参数为正数,表示规定最多分割成几个元素//输出结果:array(2){[0]=>string(2)"ba"[1]=>string(3)"ana"}var_dump(explode('n','banana',2));//③第3个参数为负数,表示返回除最后几个元素外的所有元素//输出结果:array(1){[0]=>string(2)"ba"}var_dump(explode('n','banana',-2));字符串分割数组代码示例3.2.4数组和字符串的转换$arr=[1,2,3]; //定义一个数组echoimplode(',',$arr); //输出结果:1,2,3implode()函数:通过指定的连接符将数组拼接成一个字符串,第1个参数是连接符,第2个参数是待处理的数组。implode()函数数组转换字符串代码示例3.2.5【案例】订货单

先定一个小目标!掌握订货单案例的实现,能够通过数组保存订货单的数据,并在页面中输出展示3.2.5【案例】订货单需求分析利用数组统计用户的订货单的总价,例如,卖家卖了产自广东的3个主板、产自上海的2个显卡、产自北京的5个硬盘,它们的单价分别为379、799元、589元。3.3常用数组函数3.3.1基本数组函数

先定一个小目标!掌握基本数组函数的使用,能够实现求数组元素个数、建立数组、合并数组、分割数组等操作3.3.1基本数组函数函数名功能描述count()计算数组中元素的个数range()建立一个包含指定范围元素的数组array_merge()合并一个或多个数组array_chunk()将一个数组分割成多个数组基本数组函数:用于统计数组元素个数、合并等操作。3.3.1基本数组函数$stu=[ ['Tom','male',18], ['Alice','female',15], ['Julia','female',14]];echocount($stu); //输出结果:3echocount($stu,1); //输出结果:12案例:基本数组函数使用示例3.3.2数组排序函数

先定一个小目标!掌握数组排序函数的使用,能够对数组元素进行正序、逆序等方式排列3.3.2数组排序函数函数名功能描述函数名功能描述sort()对数组排序asort()对数组进行排序并保持索引关系rsort()对数组逆向排序arsort()对数组进行逆向排序并保持索引关系ksort()对数组按照键名排序shuffle()打乱数组顺序krsort()对数组按照键名逆向排序array_reverse()返回一个单元顺序相反的数组数组排序函数:用于对数组中的元素进行比较。3.3.2数组排序函数$arr=['dog','lion','cat'];sort($arr,SORT_NATURAL);//输出结果:Array([0]=>cat[1]=>dog[2]=>lion)print_r($arr); 案例:数组排序函数使用示例3.3.3数组检索函数

先定一个小目标!掌握数组检索函数的使用,能够对数组中的键、值进行查找3.3.3数组检索函数函数名功能描述函数名功能描述array_search()在数组中搜索给定的值array_rand()从数组中随机取出一个或多个单元array_unique()移除数组中重复的值key()从关联数组中取得键名array_column()返回数组中指定的一列in_array()检查数组中是否存在某个值array_keys()返回数组中键名array_values()返回数组中所有的值数学检索函数:用于对数组中的键、值进行查找、获取。3.3.3数组检索函数$tel=['110','120','119'];//输出结果:Gotit!echoin_array('120',$tel)?'Gotit!':'notfound!';//输出结果:notfound!echoin_array(120,$tel,true)?'Gotit!':'notfound!';案例:数组检索函数使用示例3.3.4【案例】双色球

先定一个小目标!掌握双色球案例的实现,能够通过编程实现双色球的选号功能3.3.4【案例】双色球需求分析双色球分为红色球号码区和蓝色球号码区,每注投注号码是由6个红色球号码和1个蓝色球号码组成,红色球号码从1~33中选取,蓝色球号码从1~16中选取,通过数组函数实现机选双色球号码的投注。双色球号码示例3.4文件包含语句3.4文件包含语句

先定一个小目标!掌握文件包含语句的使用,能够将公共代码抽取到另一个文件,然后包含到当前脚本中使用3.4文件包含语句文件包含语句的作用:3.4文件包含语句文件包含语句:include、require、include_once和require_once。//第一种写法:include'完整路径文件名';//第二种写法:include('完整路径文件名');语法格式3.4文件包含语句require语句与include语句的区别:文件未找到:include语句发生警告信息,程序继续运行;require语句发生致命错误,程序停止运行。被包含文件的加载时间:程序执行到include语句才会调用,require语句在程序开始执行时则立即调用。3.5替代语法3.5.1什么是替代语法

先定一个小目标!熟悉替代语法的使用,能够利用替代语法在HTML模板中输出数据3.5.1什么是替代语法替代语法:在HTML模板中嵌入PHP代码时,将一些语句替换成可读性更好的语法。把if、while、f

温馨提示

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

评论

0/150

提交评论