




已阅读5页,还剩111页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,php网站开发基础,应用技术学院任课教师:,.,第2章PHP基础知识,本节课学习要点1.掌握PHP代码基本语法2.掌握基本的编码规范3.熟练PHP程序的组成、基本格式与输出语句,3,2020/4/26,2020年4月26日,3,2.1PHP语法基础,2.1.1PHP标记风格Web服务器通过标记识别PHP代码的开始和结束,标记之间的所有文本都被解释为PHP语句,标记之外的文本被认为是HTML语句。标准的PHP标记风格如下:,4,2020/4/26,2020年4月26日,4,2.1PHP语法基础,2.1.2PHP程序注释PHP支持3种风格的程序注释(注释中不要出现PHP标记符号)。1、单行注释以“/”开始的注释2、多行注释包含在“/*”和“*/”之间的注释3、shell风格的注释以“#”开始的注释,5,2020/4/26,2020年4月26日,5,2.1PHP语法基础,例2-13种注释,6,2020/4/26,2020年4月26日,6,2.2PHP数据类型,PHP支持8种原始类型:4种标量类型:boolean(布尔型)、string(字符串)、integer(整型)、float/double(浮点型);2种复合类型:array(数组)、object(对象);2种特殊类型:resource(资源)、NULL(空)。,7,2020/4/26,2020年4月26日,7,2.2PHP数据类型,2.2.1标量数据类型1、布尔型(boolean)布尔型是PHP中常用的数据类型,通常用于条件表达式或循环表达式中,其值为true或false。例2-2布尔型数据运行结果:变量$a的值为true,8,2020/4/26,2020年4月26日,8,2.2PHP数据类型,2、字符串型(string)字符串由数字、字母和符号组成。字符串中的每一个字符占1个字节。字符串有3种定义形式:单引号(),双引号(“),界定符()。PHP中用“.”来连接字符串或字符串变量。,9,2020/4/26,2020年4月26日,9,2.2PHP数据类型,区别:单引号包含的变量按普遍字符输出。双引号包含的变量按其实际值输出。例2-3单、双引号字符串对比输出运行结果:变量$s的值是:ABC123,10,2020/4/26,2020年4月26日,10,2.2PHP数据类型,界定符字符串定义格式$变量名=,运行结果:ok,helloIwill,运行结果:这和双引号没有什么区别,$i同样可以被输出。$i的内容为:显示该行内容,12,2020/4/26,2020年4月26日,12,2.2PHP数据类型,字符串中的字符也可以用数组索引的形式来表示。例2-5字符串中字符以数组元素形式输出运行结果:,13,2020/4/26,2020年4月26日,13,2.2PHP数据类型,3、整型(integer)整型类型只包含整数。整数可以用十进制、八进制、十六进制表示,有效范围是:(-2147483648,+2147483647)。如果在八进制中出现非法数字(8和9),则非法数字及其后面的数字被忽略。,14,2020/4/26,2020年4月26日,14,2.2PHP数据类型,例2-6整数不同进制形式输出,;echo10进制的结果是:.$str1.;echo8进制的结果是:;if($str2=$str3)echo$str2=$str3=.$str2;elseecho$str2=.$str2.与$str3=.$str3.结果不同;echo;echo16进制的结果是:.$str4;?,运行结果:,15,2020/4/26,2020年4月26日,15,2.2PHP数据类型,4、浮点型(float/double)浮点数据类型用来保存小数。PHP4以前版本中,浮点型的标示为double,PHP4以后改为float。doub与float没有区别。浮点型数据书写格式:标准格式:3.14,-0.257科学计数格式:314E-2,-2.57E1,16,2020/4/26,2020年4月26日,16,2.2PHP数据类型,2.2.2复合数据类型1、数组(array)一组数据集合,形成一个可操作数据体。数组中每个数据称为一个元素,元素包含索引和值两个属性。元素索引:由数字或字符串组成元素值:可以是任意数据类型的数据2、对象(object)通过new运算得到一个类的对象。,17,2020/4/26,2020年4月26日,17,2.2PHP数据类型,2.2.3特殊数据类型1、资源(resource)资源是一种特殊变量,又叫句柄,保存到外部资源的一个引用。例如:同时有多个数据库连接存在时,要进行查询和关闭连接等操作,必须指明某个操作是对应哪个连接的。因此给每个连接赋予一个标识值,一般是整数,这种标识值的数据类型称为资源型。,18,2020/4/26,2020年4月26日,18,2.2PHP数据类型,2、空值(NULL)表示没有为变量设置任何值。NULL类型唯一的值就是“NULL”。在下列情况时一个变量的值是NULL:被赋值为NULL;尚未被赋值;被执行unset()方法。,19,2020/4/26,2020年4月26日,19,2.2PHP数据类型,2.2.4数据类型转换PHP在变量定义方面比较自由,因此PHP被称为弱类型语言,也称为动态语言。PHP数据类型转换有3种方式:1.自动转换(运算符);2.强制转换;3.setType()方法转换。,20,2020/4/26,2020年4月26日,20,2.2PHP数据类型,1.自动转换定义变量时不需指定数据类型,PHP会根据具体引用变量的具体应用环境,将变量转换为合适的数据类型。例2-7自动转换,;echo1+经验;?,运行结果:,21,2020/4/26,2020年4月26日,21,2.2PHP数据类型,2.强制转换将某个类型的数据强制转换为括号内指定类型的数据。,22,2020/4/26,2020年4月26日,22,2.2PHP数据类型,A.强制转换为整型的转换规则,23,2020/4/26,2020年4月26日,23,2.2PHP数据类型,B.强制转换为浮点型的转换规则注:某些运算虽然结果看上去是整型,但实际是浮点型。,24,2020/4/26,2020年4月26日,24,2.2PHP数据类型,C.强制转换为布尔型的转换规则,25,2020/4/26,2020年4月26日,25,2.2PHP数据类型,D.强制转换为数组的转换规则,26,2020/4/26,2020年4月26日,26,2.2PHP数据类型,E.强制转换为对象的转换规则,27,2020/4/26,2020年4月26日,27,2.2PHP数据类型,F.强制转换为字符串型的转换规则,28,2020/4/26,2020年4月26日,28,2.2PHP数据类型,3.setType()方法转换setType()方法将指定的变量转换成指定的数据类型。语法:setType(要转换的变量名,目标数据类型),29,2020/4/26,2020年4月26日,29,2.2PHP数据类型,例2-8setType()方法转换,;echo强制转换后变量$num的值是:.$num;echo;echo使用setType()方法转换变量$num的数据类型,settype($num,.integer.)的值是:;echosettype($num,integer);echo;echosetType()方法转换后变量$num的值.$num;?,运行结果:,30,2020/4/26,2020年4月26日,30,2.3PHP常量及其应用,2.3.1常量声明常量名由字母、数字、下划线组成,首字符不能是数字。常量声明语法:define(常量名,常量值,大小写敏感参数)说明:声明时,常量名和常量值必须给出大小写敏感参数的值为逻辑值,默认为false,表示大小写敏感;若值为true,则表示大小写不敏感。,31,2020/4/26,2020年4月26日,31,2.2PHP数据类型,例2-9常量声明的大小写敏感参数,;echomage1;define(Mage2,abc);echo;echomage2;?,运行结果:,32,2020/4/26,2020年4月26日,32,2.3PHP常量及其应用,2.3.2使用常量常量可赋给某个变量,通过变量来使用常量;也可以直接通过常量名使用该常量。通过变量获取常量值语法$变量名=常量名constant($变量名),33,2020/4/26,2020年4月26日,33,2.2PHP数据类型,例2-10获取常量值,;$name=CCUT;echo通过变量获得的常量CCUT的值是:.constant($name);?,运行结果:,34,2020/4/26,2020年4月26日,34,2.3PHP常量及其应用,2.3.3系统预定义常量PHP可通过系统预先定义的常量获取相关信息(系统常量见教材P20)。例2-11系统常量,当前行数是:._LINE_;echo当前PHP版本信息是:.PHP_VERSION;echo当前操作系统核心版本是:.PHP_OS;?,运行结果:,35,2020/4/26,2020年4月26日,35,2.4PHP变量及其应用,2.4.1变量名称变量名称遵循以下规定:(1)变量名必须以美元符号$开始;(2)变量名开头可以以下划线开始;(3)变量名不能以数字字符开头;(4)PHP的变量名区分大小写;,36,2020/4/26,2020年4月26日,36,2.4PHP变量及其应用,2.4.2变量赋值1、直接赋值PHP中定义变量时不需要指定变量的类型,系统会根据变量的值决定其类型。通过赋值运算符为变量直接赋值。如果定义变量时没有为变量赋初值,那么在使用变量时,系统会根据变量在语句中所处的位置确定其类型,并为该变量赋一个与其类型匹配的默认值。字符串类型的初值为空值,整型类型的初值为0;布尔型的初值为false。,37,2020/4/26,2020年4月26日,37,2.3PHP常量及其应用,例2-12变量默认初始值示例,$boo2的默认初始值是true;elseecho$boo2的默认初始值是false;?,运行结果:,38,2020/4/26,2020年4月26日,38,2.4PHP变量及其应用,2、变量间赋值当变量1定义并赋值后,将变量1赋给变量2称为变量间赋值。赋值后,两个变量使用各自的内存,互不干扰。语法格式:$变量2=$变量1,39,2020/4/26,2020年4月26日,39,2.4PHP变量及其应用,例2-13变量间赋值示例,;echo$str2;?,运行结果:,40,2020/4/26,2020年4月26日,40,2.4PHP变量及其应用,3、引用赋值引用赋值是指通过“$str1=长春工业大学;echo改变后的$str1的值是:.$str1;echo改变后的$str1的值是:.$str2;?,运行结果:,42,2020/4/26,2020年4月26日,42,2.4PHP变量及其应用,2.4.3可变变量一个变量的值作为另一个变量的名称,这种形式称为可变变量。可变变量通过在一个变量名前使用两个“$”符号实现语法格式:$变量2=$变量1,43,2020/4/26,2020年4月26日,43,2.4PHP变量及其应用,例2-15可变变量赋值示例,运行结果:,44,2020年4月26日,2020年4月26日,44,2.5PHP运算符,运算符php运算符包括算术运算符、比较运算符、条件运算符、字符串运算符、赋值运算符、位运算符、递增运算符或递减运算符等。,45,2020年4月26日,2020年4月26日,45,2.5PHP运算符,2.5.1算术运算符1、除(/):多数情况下结果为浮点数。特例:当两个操作数都是整数(或字符串转换成的整数)并且正好能整除时,得到的结果是整数。2、取模(%):当被除数是负数时,得到的结果是负数。,46,2020年4月26日,2020年4月26日,46,2.5PHP运算符,2.5.1算术运算符,47,2020年4月26日,2020年4月26日,47,2.5PHP运算符,2.5.2比较运算符1、=和!=只考虑数值是否相同,不考虑数据类型2、=和!=既考虑数值是否相同,也考虑数据类型是否相同,48,2020年4月26日,2020年4月26日,48,2.5PHP运算符,2.5.3条件运算符条件运算符不用于两个语句或程序的选择,一般用于根据一个表达式在另外两个表达式中选一个。通常将条件表达式放在括号内。语法表达式1?表达式2:表达式3规则当表达式1为真时,执行表达式2,否则执行表达式3,49,2020年4月26日,2020年4月26日,49,2.5PHP运算符,2.5.4字符串运算符PHP程序中的字符串运算符是“.”,起作用是将前后两个字符串连接为一个新字符串。注意:“+”在PHP中并不是字符串连接运算符,50,2020年4月26日,2020年4月26日,50,2.5PHP运算符,2.5.5赋值运算符,51,2020年4月26日,2020年4月26日,51,2.5PHP运算符,2.5.6自增、自减运算符,52,2020年4月26日,2020年4月26日,52,2.5PHP运算符,2.5.7位运算符,53,2020年4月26日,2020年4月26日,53,2.5PHP运算符,2.5.8逻辑运算符,54,2020/4/26,2020年4月26日,54,2.3PHP常量及其应用,例2-12_1逻辑运算符优先级,$c1的值是;var_dump($c1);?,运行结果:$c1的值是true,原因:1、“=”的优先级高于“and”,因此先把$a1的值赋给$c1,此时$c1的值是true;然后再用$c1和$b1做“and”运算。2、先计算$a2and$b2,值为false,然后把该值赋给$c2;因此$c2的值是false,$c2的值是;var_dump($c2);?,运行结果:$c2的值是false,55,2020/4/26,2020年4月26日,55,2.3PHP常量及其应用,例2-12_2逻辑运算符优先级,$c1的值是;var_dump($c1);/输出带有数据类型的变量值?,运行结果:,原因:1、“=”的优先级高于“xor”,因此先把$a1的值赋给$c1,此时$c1的值是true;然后再用$c1和$b1做“xor”运算。2、先计算$a2xor$b2,值为false,然后把该值赋给$c2;因此$c2的值是false,$c2的值是;var_dump($c2);?,运行结果:,56,2020/4/26,2020年4月26日,56,2.3PHP常量及其应用,练习:1、已知三个数10,18,6,写出程序求出3个数的最大值。2、已知长和宽分别是8和6,计算长方形的面积。,2、尝试说出下列代码的运行结果。constA=50;constB=123;constC=A+B=;$d=A+B;echoC.$d;3、尝试说出以下代码的运行结果constA=50;constA=A+15;echoA;,1、尝试说出以下代码中各个表达式的运算结果。$a=6;$b=7;$c=$a+10*$a;$d=$a+;$e=+$a;$f=$a+(+$a);$g=+$a-$b-;,2.3语句结构顺序结构、分支结构,顺序语句,举例:$a=6;$b=7;$c=$a+10*$a;$d=$a+;echo$a,$b,$c,$d;,2.3语句结构顺序结构、分支结构,条件语句,1、if语句if语句是许多高级语言中重要的控制语句if(expr)statement如果某个条件成立,就做某件事情。,我是吴亦凡的粉丝!;$a=芦苇;if($a=芦苇)echo我是鹿晗的粉丝!;if($a=梅格妮)echo我是吴亦凡的粉丝!;echo我不是鹿晗的粉丝!;if($a=芦苇)echo我不是吴亦凡的粉丝!;echo我是鹿晗的粉丝!;?,2.3语句结构顺序结构、分支结构,2、if.else语句if(expr)statement1;elsestatement2;,2.3语句结构顺序结构、分支结构,举例:$a=梅格妮;if($a=梅格妮)echo我是吴亦凡的粉丝!;elseecho我不是吴亦凡的粉丝!;,2.3语句结构顺序结构、分支结构,3、if.elseif.else语句if(expr1)statement1;elseif(expr2)statement2;elseif(expr3)statement3;.elsestatementn;,2.3语句结构顺序结构、分支结构,例如:$score=85;if($score=90,2.3语句结构顺序结构、分支结构,4、switch语句switch语句和前面讲到的if.elseif.else类似,也是根据不同的条件执行不同的语句。switch(variable)caseval1:.;break;caseval2:.;break;caseval3:.;break;.default:.;,2.3语句结构顺序结构、分支结构,例:计算m月d日,是今年的第几天。提示:定义的三个变量$month=6;$day=20;$sum=0;,2.3语句结构顺序结构、分支结构,练习:1、写一个程序判断该年是否为闰年。(4年一闰,百年不闰,四百年再闰)2、用switch写一个程序判定每个月份有多少天?(2月按28天即可,不必计算闰月)。3、写一个程序计算,某年某月某日是该年的第多少天。,2.3语句结构顺序结构、分支结构,循环语句是在满足条件的情况下反复地执行某一个操作。在php中,提供了4个循环控制语句,分别是while循环语句、do-while语句、for循环语句和foreach循环语句。,2.4语句结构循环结构,1.while循环语句如果条件成立,while语句将重复执行代码块。语法:while(表达式)语句块;当表达式非0值时,执行while语句中的内嵌语句;当表达式为0时,则不执行while语句中的内嵌语句。特点:先判断表达式,后执行语句。,2.4语句结构循环结构,1.while循环语句例:输出1-5数字;$i+;?,2.4语句结构循环结构,2.do.while循环语句do.while语句也是循环控制语句中的一种,使用方式和while相似,也是通过判断表达式的值来输出循环语句。语法:do语句块;while(表达式)该语句的操作流程是:先执行一次指定的循环语句,然后判断表达式的值,当表达式的值为非0时,返回重新执行循环语句。如此反复,指到表达式的值等于0时为止,循环结束。,2.4语句结构循环结构,3.for循环语句如果您已经确定了代码块的重复执行次数,则可以使用for语句。语法:for(initialization;condition;increment)codetobeexecuted;for语句有三个参数。第一个参数初始化变量,第二个参数判断条件,第三个参数包含执行循环所需的增量。如果initialization或increment参数中包括了多个变量,需要用逗号进行分隔。而条件必须计算为true或者false。,2.4语句结构循环结构,3.for循环语句例:使用for循环来计算2-100所有偶数之和。$sum=0;for($a=0;$a$value)循环语句;,2.4语句结构循环结构,4.foreach循环语句例:遍历数组$arr=array(one,two,three);foreach($arras$value)echoValue:.$value.;,2.4语句结构循环结构,例:九九乘法表,2.4语句结构循环结构,1、break跳转语句break关键字可以终止当前的循环,包括while、do.while、for、foreach和switch在内的所有控制语句。break语句不仅可以跳出当前的循环,还可以指定跳出几重循环。格式为:breakn;参数n指定要跳出的循环数量。2、continue跳转语句程序执行break后,将跳出循环,而开始继续执行循环体的后续语句。continue跳转语句的作用没有break那么强大,只能终止本次循环,而进入下一次循环中。在执行continue语句后,程序将结束本次循环的执行,并开始下一轮循环的执行操作。continue也可以指定跳出几重循环。,2.5语句结构跳转语句,3、goto语句goto操作符可以用来跳转到程序中的某一个指定位置。该目标位置可以用目标名称加上:来标记。php中的goto是有一定限制的,它无法跳转到任何循环或者switch结构中。常见的用法是用来跳出循环或者switch。可以代替多层的break。当然php中的goto还有别的限制,如只能在同一个文件和作用域中跳转,也就是说你无法跳出一个函数或者类方法,也无法跳入到另一个函数。4、return语句还有一种跳转语句叫做return语句,会跳出当前函数。我们会在后面的章节里讲解。,2.5语句结构跳转语句,;for($b=1;$b$a*$b=.$a*$b.;echo;?,2.5语句结构跳转语句,for($a=1;$a;for($b=1;$b$a*$b=.$a*$b.“;echo“;,for($a=1;$a;for($b=1;$b$a*$b=”.$a*$b.“;echo;,1.思考如何做一个某年的日历。(需要用到循环的知识),2.6思考题,1.求1-100的奇数和2.用循环输出3.输出50以内能被3整除的数4.求半径从1-10的圆的面积,并且将大于100的面积输出,2.6思考题,程序在开发的过程中,常常需要重复进行某种操作或者处理,如果每次执行相同的操作都要重新写一遍相同的代码,那样会造成系统资源极大的浪费。而且可维护性会很差,比如说一个操作需要改进,程序中有多处使用相同的代码,那么改动一个小小的地方,都要浪费很大的力气,写很多重复的代码也会降低开发的效率。函数就是为了解决这些问题而设计的。PHP中函数分为系统函数和用户自定义函数两类。PHP拥有多达162个系统函数库,包含着数量超过1000的系统函数。PHP也可以根据需要自定义函数。,2.7函数,1.函数的定义和调用函数是一种可以在任何被需要的时候执行的代码块。格式:functionfun_name($str1,$str2.$strn)fun_body;function是声明自定义函数时必须用到的关键字。fun_name自定义函数的名字。函数名要符合php的命名规范。$str1函数的参数。参数可以是一个,也可以是多个,也可以没有。但是小括号不能省略。fun_body是自定义函数的主体,是功能实现部分。,2.7函数,1.函数的定义和调用;writeMyIdol();writeMyIdol();writeMyIdol();echo重要的事情说三遍;?,2.7函数,2.函数的参数定义时的参数称为形式参数,简称形参;调用时的参数称为实际参数,简称实参例:functionhello($str)/形式参数echohello$str;hello(EXO);/实际参数,2.7函数,2.函数的参数默认参数就是函数的参数列表中的若干参数指定了值,如果调用函数时不传入对应的值则函数会接受默认参数的值,这样可以避免调用时出现没有参数的错误。也可以使一些程序显得更加合理。如果传入对应的参数,就会替换默认参数。例:functiontvplay($str=后宫甄嬛传)echo我喜欢看:.$str;tvplay();tvplay(伪装者);,2.7函数,2.函数的参数默认参数例:functiontvplay($t1,$t2=好先生,$t3=十宗罪)echo我喜欢的电视剧是:.$t1;echo你喜欢的电视剧是:.$t2;echo他喜欢的电视剧是:.$t3;tvplay(琅玡榜);,2.7函数,3.函数参数的传递可以通过参数向函数传递信息。参数类似变量。参数被定义在函数名之后,括号内部。可以添加任意多参数,只要用逗号隔开即可。参数传递的方式有3种:按值传递按引用传递默认参数,2.7函数,3.函数参数的传递(1)值传递实参值赋给形参,函数调用后实参值不变。例:functionexample($m)$m=$m*$m+10;echo在函数内,$m的值是:.$m;$m=3;example($m);echo在函数外,$m的值是:.$m;,2.7函数,3.函数参数的传递(2)引用传递按引用传递就是将实参的内存地址传递到形参中。这时,在函数内部的所有操作都会影响到实参的值,返回后实参的值会发生相应的变化。引用传递方式就是在传值时在原基础上加,2.7函数,3.函数参数的传递(3)默认参数(可选参数)还有一种设置参数的方式,默认参数即可选参数。可以指定某个参数为可选参数,将可选参数放在参数列表的末尾,并且指定其默认值为空。例:已知原价,计算出售价格。functionvalues($price,$tax=)$price=$price+$price*$tax;echo出售价格:.$price;values(100,0.25);values(100);,2.7函数,4.函数的返回值通常,函数将返回值传递给调用者的方式是使用关键字return。return()将函数的返回值返回给函数的调用者,即将程序控制权返回到调用者的作用域。如果在全局作用域内使用return()关键字,那么将终止脚本的执行。return函数只能返回一个参数,即只能有一个返回值,不能一次返回多个。例:functionvalues($price,$weight)return$price=$price*$weight;echo总金额是:.values(5.8,100);,2.7函数,5.函数中变量的作用域变量需要先定义后使用,但这不是可以随时使用变量的。变量需要在作用范围内才可以使用,即变量的作用域。在函数中定义的变量称为局部变量,在函数外定义的变量称为全局变量。如果希望函数内部使用函数外部的变量,需要在函数内部使用关键字global修饰变量。,2.7函数,$var=100;/此处$var是全局变量functiontest()echo在函数内部var的值:.$var;/在函数内容部调用全局变量$vartest();/无效调用,$var=100;/此处$var是全局变量functiontest()global$var;/在test()范围内,使用函数外面的变量echo在函数内部var的值:.$var;test();/有效调用,6.可变函数可变函数也称作变量函数。如果一个变量名后有圆括号,php将寻找与变量的值同名的函数,并且将尝试执行它。这样就可以将不同的函数名称赋予同一个变量,赋予变量哪个函数名,在程序中使用变量名并在后面加上圆括号时,就调用哪个函数执行,类似面向对象中的多态特性。可变函数还可以被用于实现回调函数、函数表等。例:可变函数functiona($a,$b)return$a+$b;functionb($a,$b)return$a*$a+$b*$b;functionc($a,$b)return$a*$a*$a+$b*$b*$b;$result=“c”;/$result=“a”;$result=“b“;可分别调用a和b两个函数echo“运算结果是:”.$result(2,3);,2.7函数,注意:可变函数在实际编程中使用可增加程序的灵活性,但是滥用可变函数会降低PHP代码的可读性,使程序逻辑难以理解,给代码维护带来不便,所以在编程过程中尽量少用或不用可变函数。,7.递归函数递归函数即自调用函数,在函数体内直接或间接地自己调用自己。例:使用递归函数实现1-n的和:functiongetSum($n)if($n=1)/满足条件,递归结束return1;$temp=getSum($n-1);return$temp+$n;echo“sum=”.getSum(4);/调用递归函数,打印出1-4的和,2.7函数,课后练习:,2.7函数,除了用户自行编写的函数库外,php自身也提供了很多内置的函数。在PHP中,提供了超过700个内建的函数。判断一个编程语言的功能强弱,可以从他的库函数入手。一个较好的编程语言,必然有较强的库函数。常用函数:explode():将字符串分割成数组implode():将字符数组拼接成一个新的字符串strcmp():字符串比较操作str_replace():取代所有在字符串中出现的字串。substr():从指定的字符串str中按照指定的位置start截取一定长度length的字符。strlen():获取指定字符串的长度trim():删除字符串前后的空白,2.8内置函数,1.arrayexplode(string$separator,string$str,int$limit)/字符串分割例:$str=apple,pear,banana,orange;$arr=explode(,$str);echo分割结果为:;print_r($arr);例:$str=apple,pear,banana,orange;$arr=explode(“,”,$str,2);echo分割结果为:;print_r($arr);,2.8内置函数,2.stringimplode(string$glue,array$arr)/字符串连接例:$fruit_arr=array(apple,pear,banana,orange);$fruit_str=implode(/-1:负数为str2大于str1,2.8内置函数,4.mixedstr_replace(mixed$search,mixed$repalce,mixed$subject,2.8内置函数,5.stringsubstr(string$str,int$start,int$length)/字符串截取例:$str=Thisisastring;$str1=substr($str,0,4);/从第一个字符开始,截取4个字符echostr1为:.$str1.;$str2=substr($str,0);/从第一个开始,截取到末尾echostr2为:.$str2.;$str3=substr($str,0,-4);/从第一个开始,直到字符串末端第4个字符echostr3为:.$str3.;$str4=substr($str,-1);/从字符串末端返回1个字符echostr4为:.$str4.;,2.8内置函数,注意:一个中文占三个字符$s1=hello,大家好,我的专业我很喜欢;$s2=str_replace(我,他,$s1,$count);echo$s2.;echo$count;$s3=substr($s2,6,9);echo$s3;,6strlen():获取指定字符串的长度例:$str1=abcd;$str2=中文字符串;echostr1的长度为.strlen($str1).;echostr2的长度为.strlen($str2).;/一个中文字符的长度为37.trim():删除字符串前后的空白例:$str=helloworld!“;echo未调用前.$str.;echo调用后.trim($str).;,2.8内置函数,$str1=abcd;$str2=中文字符串;$s3=trim($str2);echostr1的长度为.strlen($str1).;echo$str2;echo$s3;,在WEB程序开发时,经常涉及日期和时间管理,例如:记录新闻的发而战时间、购买商品时下订单时间,计算页面的执行时间等,PHP提供了强大的日期和时间处理函数,可以满足各种需求1.UNIX时间戳PHP提供了UNIX时间戳用于解决时间运算的问题。UNIX时间戳是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。以32位二进制数来表示,其中1970年01月01日零点也叫UNIX纪元。UNIX时间戳在许多操作系统中广泛使用,UNIX时间戳不能为负数。将日期和时间转换为时间戳使得PHP中的日期和时间计算变得简单。PHP提供了mktime()函数用于返回一个指定时间的时间戳:(1)intmktime(int$hour,int$minute,int$second,int$month,int$day,int$year,int$is_dst)该函数返回值是一个UNIX时间戳,参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。$is_dst:是否为夏时制时间,1为是,0为不是,默认值为-1(不知道是否为夏时制)PHP5.1起,本参数已废弃,2.9日期和时间管理,mktime()函数应用:/省略参数,则使用当前时间echodate(Y-m-dH:i:s,mktime();/指定小时,其他值使用当前时间echodate(Y-m-dH:i:s,mktime(14);/指定时分秒,月日年echodate(Y-m-dH:i:s,mktime(14,28,56,4,10,2015);注:date()用于格式化输出时间,2.9日期和时间管理,mktime()函数应用:案例说明:1.异常处理,因为没有设置时区,所以会出现警告。加了后不显示警告的内容。2.年份可以是4位也可以是2位。如果是0-69,对应2000-2069如果是70-100对应1970-20003.如果对时间要求不精确,可以赋值为0.4.可以从右向左省略参数。5.参数为空,返回当前的时间戳。,2.9日期和时间管理,2016年9月27日9点9分9秒转换为UNIX时间戳为:;echomktime(9,9,9,9,27,2016);echo2016年9月27日9点9分9秒转换为UNIX时间戳为:;echomktime(9,9,9,9,27,16);echo2016年9月27日9点9分9秒转换为UNIX时间戳为:;echomktime(0,0,0,9,27,16);echo今天9点9分9秒转换为UNIX时间戳为:;echomktime(9,9,9);echo此时的UNIX时间戳为:;echomktime();?,(2)计算时间差UNIX时间戳的优势就在于通用性,不会因为国家或者地区的不同而出现不兼容的情况。而由于它是表示秒数,虽然看起来头疼,但是用于计算时间差就非常方便。举例:,2.9日期和时间管理,$year=1990;$month=10;$day=19;$bir=mktime(0,0,0,$month,$day,$year);$now=mktime(0,0,0);$m=$now-$bir;$t=(int)($m/(60*60*24);echo到现在为止我已经过了大约.$t.天;,2.获取时间(1)获取系统当前时间inttime(void);PHP默认时区设置是UTC(UniversalTimeCoordinate,全球标准时间),与英国伦敦时间相同,而北京位于东八区,所以获取当前时间会出现8个小时的时差,如果要正确显示北京时间,需要修改时区设置,通常有两种修改方法:1)修改PHP配置文件如果有Web服务器的权限,修改php.ini中的date.timezone配置,例如将默认时区设置为PRC(中华人民共和国PeoplesRepublicofChina)。date.timezone=PRC注:修改完成date.timezone配置后,需要重启服务器,2.9日期和时间管理,2.获取时间2)在程序中使用函数设置如果没有服务器权限,可以在程序中使用date_default_timezone_set()函数来设置时区booldate_default_timezone_set(string$timezone_identifier)在函数中,返回值类型是bool型,timezone_identifier用于指定时区标识符,可以”PRC”、“Asia/Shanghai”、“Asia/Chongqing”等,例如将默认时间设置为上海:设置为中华人民共和国:,2.9日期和时间管理,date_default_timezone_set(Asia/Shanghai);echodate(Y年n月d日H:i:s,time();,date_default_timezone_set(PRC);echodate(Y年n月d日H:i:s,time();,3.获取用户提交的时间实际开发中,如果需要获取用户提交的表单时,表单中的时间通常是使用日期选择控件获得的字符串,如“2014-5-417:20:55”使用strtotime()函数,用于将字符串转化为时间戳。intstrtotime(string$time,int$now);参数$time用于指定日期时间字符串,$now用于计算相对时间的参考点,如果省略则使用系统当前时间。输出时间戳:,2.9日期和时间管理,date_default_timezone_set(PRC);echodate(Y-m-dH:i:s,strtotime(2014-5-1017:20:55);,date_default_timezone_set(PRC);echostrtotime(now);,3.获取用户提交的时间,2.9日期和时间管理,date_default_timezone_set(PRC);echo(strtotime(now).);echo(strtotime(15October1980).);echo(strtotime(+5hours).);echo(strtotime(+1week).);echo(strtotime(+1week3days7hours5seconds).);echo(strtotime(nextMonday).);echo(strtotime(lastSunday);,date_default_timezone_set(PRC);echodate(Y-m-dH:i:s,strtotime(now).;echodate(Y-m-dH:i:s,strtotime(15October1980).;echodate(Y-m-dH:i:s,strtotime(+5hours).;echodate(Y-m-dH:i:s,strtotime(+1week).;echodate(Y-m-dH:i:s,strtotime(+1week3days7hours5seconds).;echodate(Y-m-dH:i:s,strtotime(nextMond
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度财务顾问财务顾问顾问团队能力提升服务协议
- 2025年度对外贸易合同二:国际贸易绿色包装与环保材料采购合同
- 2025版十九组太阳能路灯工程智能化管理系统开发合同
- 2025年度地产代理合同:长租公寓项目
- 2025版室内设计师墙纸师傅定制施工合作协议书
- 贵州省兴仁县2025年上半年事业单位公开遴选试题含答案分析
- 2025版沿街商铺租赁合同(含装修设计、广告投放及物业增值服务)
- 2025版企业间知识产权质押借款合同标准文本
- 2025版临时工劳务合同标准范本
- 2025年光伏发电项目电气设施安装施工合同
- 《老年学概论(第3版)》课件第一章
- GB/T 32177-2015耐火材料中B2O3的测定
- GB/T 13955-2017剩余电流动作保护装置安装和运行
- GB/T 11968-2020蒸压加气混凝土砌块
- 基础生态学-生态系统生态学课件
- 幼小可爱卡通家长会通用
- 中西医治疗高血压课件
- TOP100经典绘本课件-《大卫上学去》
- 《古代汉语(II)》课程教学大纲(本科)
- 高血压病人健康教育
- 2021年医院院感知识竞赛理论题目含答案
评论
0/150
提交评论