相关代码及笔记-php加强_第1页
相关代码及笔记-php加强_第2页
相关代码及笔记-php加强_第3页
相关代码及笔记-php加强_第4页
相关代码及笔记-php加强_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

第一章变量:类型(lesson 整型整型[integer]浮点型[float,double]字符串[string]布尔[boolean]数组[array]对象[Object][在后面的面向对象中会学到NULL没有都是对0,101000001表示字母65呢NULL是什么NULL类型只标注了它的类型为$a$a=3;//$b3.14;//$c=null;//null$d o;//$e=true;//echo[a-zA-Z0-9]和下划线$$:变量检测echo个不存在的变量,会报notce级别的错误所以要检测下这个变量是否存在如何检测变量是否存在sset—检测变量是否设检测个变量是否存在$b$b=$c=$d=$e if(isset($a)){echo变量b存在}elseecho变量b不存在}:类型检测检测个变量,php是把它成个什么样的类型的因为箱子里面已经了它的变量类gettype—获取变量的类型[现成的系统函数$a$a=echo$b=echo$c=echo$doecho$e=echo判断变量是否是某种isisfloat()[isdouble]检测变量是否为浮isint()[is if(isif(isechoa是字符;}elseechoa不是字符串o$aNULLisstring()isarray()isboolis如何调试打印变量echo字符串,数prnt_r打印层次化的数据,比如:数组,对var_dump打印变量的类型及其值[调试代码比较方便$a$ao$b=$c=$d=$e=$f=echo$a,$b,$c,$d,$e,$f,<hr>;//printr打印层次化的数据,printr($c);printr($f);//用vardump打印布尔和nullvar$);var;:类型转换或者是数字/字符串到数字的转$a$a=12$b=$a3;$a=$b=$ao;//$a=o99varvar;$a= o$b=$a3;$a$a=$b=$a. o;var$;数字/字符串/数组等到布尔型值的转$b$b=3;if($b){echobistrue}elseechobisfalse}以下值,都被理解为成布尔型值的'','0',0,0.0,fa ==false)echo空字符串果然假}empty(var)—检 个变量是否为换句话说,""、0、0.0、"0"、NULL、FALSE、以及没有任何属性的对象都将被认为是空的,如果var为空,则返回$arr$arr=array();$echo变量为空}:赋值赋值有两种方式传值赋值;(两个人看两台电视同个台赋值;(两个人看同台电视1.传值赋$li$li=$wang=echo$li,~,以上代码在内存中发生了什么$li$li=echo$li,~这个赋值过程,是把$的值,赋给*2.赋值$a$a=tvb$b=&$b;//$a,$b共同指向同一个值echo$a,~,$b;加&赋改变$a的$a$a;echo$a,~:销毁为什么要销毁变量unset(变量名);销毁指定的变$a$a={echoa存在}elseechoa不存在}注意:赋值,如果两个变量指向同个盒子,当销毁其中个变量的时候,盒子是不能被销毁掉的$a$a=$b=&$a;echo$a,$b;//报一个notice重新给$a赋值个新值$a$a=18;:动态变量名动态变量名,可以体现php非常灵活的个地方用变量的值去做另个变量的名$laoda$laoda=liubei;echo$laoda,<br>;$paihang=laodaecho$paihang,~,$rank=paihang;echo$$$rank;常用面试题(章节练习第二章运算符算数运算符的三个-*/%加,减,乘,除,取除以在数学上除数不能为零$a$a=$b=echo$a/个大饼,你把它平均分成02.加$a$a$b$c=;;echogettype($a),<br>;echogettype($b),<br>;echogettype($c),<br>;因为nt型在php中目前只能存到+21亿 个更大的类型,浮点取模$a$a=$b=echo$a%$b,<br/>$a=$b=echo$a%$b,<br/>$a=$b=echo$a%$b,<br/>$a=$b=echo$a%$b,<br/>$a=$b=echo$a%$b,<br/>取模算法时,结果的正负仅取决于被除数,他和被除数致比较运算符,>=,<,<=,==,!=,===,$a=$b=$a=$b=$c=$a>$b;==和===的区$c$c=(3==3var;//==只验证值是$c=(3===3var;全等于和等于的例—$str$str=abcdef$pos=strpos($str,a);vardump$ps);if($posfalseecho没找到}elseecho找到了}if($pos===echo没找到}elseecho找到了}三元运算符结果1:$a结果2$a=$b=5;if($a=$b=5;if($a>=$b){echo}elseecho}$a$a=$b=$c$b=$c=($a>=$b?$a:$b);echo$c;给定$a,$b,$c3个整型值,返回其中最大的提示:嵌套三元运算符,嵌套时,为防止,建议多用()包起来表达逻辑运算符&&(并且||(或者某要求,有房且有车,才$house$house=$car=if($house&&$car{echomary}elseechosorry}$house$house=$car=if( {echomarry}elseechosorry}或者就是有个为真就行,而并且需要都为递增递减运算符递增递减++,--在后$a$a=$b=$aecho$a$a=$b=$aecho++,--$a$a=$b echo$a$a=$b echo不推荐使用因为:++,--的操作缺乏原子性,就是句话应该就干件事,但是++,--句话干了两件事,在复杂的语句下,python中,没有++,--的操$a$a=$b=$a等价于下面3$a$a=$b=$b=$b每句话都是个原子操作字符串运算符$a$ao$b=word$c=$a.$b;echo$c;$c=$c.123456;echo$c;下面哪个运行速度更快echoecho$a.echo所以逗号更快些,不需要拼接字符串再输出还是将两个橡皮泥揉成块给你快赋值运算符 注意有2个作用:1是赋值,2是返回值$a$a=$res=($a=3);varum$rs);这是个赋值运算,213赋给$a,2是返回运算结果,常用面试xue.t/thread-151-1-1.htm第三章控制结构三大控制结构$res$res=4;if($res==1){echo你是冠军}elseif($res==echo你是亚军}elseif($res==3)echo你是季军}elseecho谢谢参与}我们可以用swtchcase(代表有几条分支,往那里分首先我们给定个变量[$res])$res=$res={case1:echo;case2:echo;case3:echo;echo谢谢参与}所以我们要在每个后加上break去后面代码的执行$res$res=2;case1:echo冠军;case2:echo季军;case3:echo亚军;echo谢谢参与}$res$res=2;case1:echo冠军;case2:echo季军;case3:echo亚军;case4:echo亚军;case5:echo亚军;}echo}echo谢谢参与$res$res=2;case1:echo冠军;case2:echo季军;casecasecase5:echo亚军;echo谢谢参与}注意比如60-80分及格0-59不及格,81-100优这种情况就不能用swtch因为case后面只能写个确切的值while/do-while如果上来条件就不为真,那次都不会执行wwhil条件为真//}$i=ie($i<{echo$i<br>$i= dowh先执行再判断,如果条件上来就为假,那至少也能执行次dodo//}$i=10;do{echo$i,<br>$i= }i}ie($i<forfor和whe都是种循环在条数轴上,循环就是有起始点($=有结束点($<=10);有步长($每走个相应的步长,就执行次代码(执行语句循环的一般要素循环的一般要素 for(1[起始点];2[结束点(到结束了没有)];4[步长{3[执行语句}for循环打印0-forfor($i=0;$i<=9;$i=$i{echo$i,<br>}步长可以不为forfor($i=0;$i<=9;$i=$i{echo$i,<br>}forfor($i=1,$j=5;$i<=5;$i=$i1,$j=$j1){echo$i,~~~~,$j,<br/>;}for可以有其他的写法[类似whe循环forfor($i=0;$i<=9;$i=$i{echo$i,<br>}forfor(;$i<=9;{echo$i=$i}contnue下个(用next更形象点整体的循环没有破坏掉,而是跳到下个循环单位中forfor($i=1;$i<=10;$i=$i1){if($i==4){}echo$i,<br/>}break破坏(将后面的执行语句破坏掉)forfor($i=1;$i<=10;=1){if($i==4)}echo$i,<br/>}在c语言,java中都有类似与contnue和break的这个东遇到长得的丑的直接contnue掉,接着相亲下个1)contforfor($i=1;$i<=10;$i{if($i==4) 丑,不约;}echo$i,<br/>}forfor($i=1;$i<=10;$i{if($i==6)echo$i是白马王子;}echo$i,<br/>}过桥问题 些编程的小题目.小题目在于锻炼你的编程思为什么遇到实际题目无法写出来,因为你学习的是语法,但是缺少编程思维,让自己学会像计算 样思考【程序【程序6/初始判断条件步长2种选择if($i>50000else/$my;$one>=00;$i{{$money=$money)$money}echo第,$i次过路口,剩下,$mon,元<br}九九乘法表编程时,遇到不会的问题,要将它拆解,步步的来你不要想下子就能做出来1.1.先for循环1-//for//for循环打印19for($i=1;$i<=9;$iecho$i,<br/>23456789forfor($i=1;$i<=9;$i){echo$i,~;{echo}echo<br/>}forfor($i=1;$i<=9;$i){for($j=1;$j<=$i;$j){echo ,$i,=,$j$i, ;}echo<br>}121=2231=332=6341=442=843=12451=552=1053=1554=20561=662=1263=1864=2465=30671=772=1473=2174=2875=3576=42781=882=1683=2484=3285=4086=4887=56891=992=1893=2794=3695=4596=5497=6398=729百钱买百鸡ff$=1$<=0$m){for($g=1;$g<=100;$g){f$m$g$s==100)&&m3$g5$s/3)==100)echo公鸡,$g,只,母鸡$,只,小鸡,$s,只<br/>}}}}ff$=1$<=0$m){for($g=1;$g<=100;$g){$s=100$m$m3$g5$s/3)==100)echo公鸡,$g,只,母鸡$,只,小鸡,$s,只<br/>}}}ff$=1$<=1$m){for($g=1;$g<=18;$g){$s=100$m$m3$g5$s/3)==100)echo公鸡,$g,只,母鸡$,只,小鸡,$s,只<br/>}}}实例练习(章节练}}}在学习的变量,运算,与控制结构后,请认真完成以下题【程序【程序1题目:企业的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成20万到40间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求 1.程序分析:请利用ifelseif做范围的讨【程序【程序2输入三个整数x,y,z【程序【程序3题目:打印出所有的“水仙花数,所谓“水仙花数”是指个三位数,其各位数字立方和例如:153是个“水仙花数”,因为153=1的三次方+5的三次方+31.程序分析:利用for循环控制100999【程序【程序4题目:猴子吃桃问题:猴子第天摘下若干个桃子,当即吃了半,还不瘾,又多吃了个, 半,又多吃了个。以后每天早上都吃了前天剩下的半零个。到第10天早.【程序【程序5题目:有分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。【程序【程序6 有100,000现金。每经过次路口需要进行次交费。交费规则为当他现金大于50,000时每次需要交5%如果现金小于等于50,000时每次交5,000。请写程序计算此人可【程序【程序7【程序【程序8《张丘建算经》成书于公元5世纪,作者是北魏人.书中最后道题堪称亮点,通常也被称 今有鸡翁,值钱五;鸡母,值;鸡雏三,值钱;百钱买鸡百只,问鸡翁母题目的意思是,公鸡5文钱1只,母鸡3文钱1只,小鸡1文钱买3只,现在用文钱共买了100只鸡,问:在这100只鸡中,公鸡母鸡和小鸡各是多少只?(设每种至少【程序【程序9求1到100内的素(质)数注:素数只能被1和其自身整除的数如【程序【程序10,稍难些,学数组后再做】种羊生命长度为5满2 生只小羊满四 生只小羊,5 初始有1只0岁的羊,20年后有多少羊。第四章函数函数概念函数就是段封装起来的代码,可以随时调用 eechotoechoBeijing<br> eechotoechoBeijing<br> eechotoechoBeijing<br>我们需要重复三次,那再来个人,能否用简单的办法招呼人函数->几行函数封装起来,再起个名字functionfunctionwl){//复合语句 e;echotoechoBeijing<br>};;;函数可以是个计算器(通过调用函数,算出两个数的和functionfunctionadd($a,$b)echoecho$a}functionfunction{return$a}echofunctionfunctionadd($a,$b)$a=$b=5;return$a$b;}echo它就是纯粹的,外界调用这个函数的时候,就会将此函数中的代码执行下如果有参数,那就相当于个加工机器 个结果出来函数定义格式functionfunction函数名([参数1],[参数2],...[参数nreturn某值/表达式}return的作用函数就好比个豆浆机器,return返回个结果函数名规范对于函数,命名规则和变量是样的,但是函数不区分大小写.虽然不区分大小写,但是时和调用时大小写要保持functionfunction{return$a=}函数执行与返回流程1.函数是机器,}functionhe($a,$b) $a$b}functionhe($a,$b) $a$b=1;}o<br/>echoechogoodgoodstudy<br>say();//执行权进入到say函数,函数结束后,交回执行权echodaydayup;functionhe($a,$bfunctionhe($a,$b) $a$b=1;return$su;echo~~~~~~~~~}echo碰到return语句,也要交函数传参方式传参的过程发生了什么函数是台加工机器,我们应该投入原料,返回结果,functionfunctiontest($a)$a=1;}$b=echo分析以上代码执行的过程//functiontest($a){//=$a=1;}echotest(5);//这里是直接给定函数的参数一个直接的值echo$b;//4,读出来的值赋给$a,$a改变并不会影响到(传值赋值和赋值此处可以使用传参$a=1;}$b=echotest($b);//5echo$b;//5这样传值不推荐,因为个函数在内部运行的时候,影响到了它外部的个环境.注意函数应该是个加工机器,它是个独立的黑盒子可选参数functionfunction{return$num}echoul(4);如果两个参数,我只给定个,另个参数不指定,但是默认有定的参数functionfunction{return$num}echo;echo过程functionfunction$nua5)$num=$rat=return$num}echoecho;过程functionfunction$nua5)$num=$rat=$rat=return$num}echo;那可以第参数有默认值,functionfunction{return$num}echo//参数报错echoul5//echomlt4,);//这样调用是没什么意义的,调用时只给个值默认是第个,会覆盖参数的第个默认值,导致函数的第二个参数没有值;注意函数作用域{echo$b=}$a=2;e在php页面中的,且在函数外部变量成为"全局变量不推荐gfunctionfunctiont1()global$a;//这句话 $a=1;echo$a;}$a=echo<br>;echo$a,<br>;$GLOBALS(数组)[不推荐使用可以将$GLOBALS看成外部变量的花名$b$b=$c= o;printr($GLOBALS);functiont2()$GLOBALS[c]=word$GLOBALS[d] e}echo$GLOBALS是系统给定的个超级全局变量在页面的,包括函数,方法等,都可以直接(共超全局变量有九个,后面我们会学到注意:外部和函数内如果想,应该使用传参的方动态调用函数 function{echohifunction{echohi}function{echogun;}$heart=good;$heart();//hi这是一个函数的调用,$heart=bad;这是php比较灵活的点,在其他的语言中,如果想实现相同的效果,相对来说会比较麻烦函数相关1:函数内部如何使用全局变量?(提示:上让思考的goba和2:练习使用超全局变量,能打印$_GET,$_POST的值,并会取来访者的3:如何检测个函数是否已定义(课上未讲,请找手册或4:考道面试题(考点为$GLOBALS数组)$GLOBALS[var1]=$var2=1;functiongetvalue(){$var1=0;return$var2;}getvalue();echo$var1."\n";echo$var2;时间戳函数php在web开发领域占据很大的,能达到80%左右,为什么它不像java可以做桌面,移动和等.对于做而言都非常之常用,很方便和实用.对于我们开发而言,我们能想到的字符串操作,数组操作等等,它基本上都有系统函数.但这都是有现成的函数可以实现的,所以对于php的常用系统函数,我们起要掌握熟练.可以让我们的开发事半功倍时间戳函数time()返回自从Unx(格林威治时间1970年1月1日00:00:00)到当前时间的秒数日12:45:29;16:20:33;帮我查出24小时候之内的用户,那么往前推天,3.1日往前推是2.28还是2.29呢?当前的时间戳-24小时的秒数(246060)=天前的时间戳获取当前时间戳的函echoechoime(),<br>puie=;mxedmcrotme([boo$get_as_foat]mxed是混合的意思,代表返回的类型不止种echoechoioim(),<br>利用mcrotme可以计算的运行时间在执行开始处和结尾处都给定个时间戳$start$start=oimru;fo($=1;$<10;$m){for($g=1for($g=1;$g<=100;$g){for($s=1;$s<=100;$s){$m$g$s==100)&&$m3$g5$s/3)==100)echo公鸡,$g,只,母鸡$,只,小鸡,$s,只<br/>}}}}$end=icotim(tu);echo$end$start;注意daeimzne=date格式化个本地时间/日期我们台显示出来需要将记录下来的时间戳格式化之后再显示前天的时间$lastday$lastday=i)24echodate(Y年m月d日is,$lastdaybrechoechodate(Y年m月d日is),<br>echodate(Ym/dis,$lastday),<br>echoechodate(m/dYis,$lastday),<br>日期解析函数给定个具体日期时间,mktme取得个日期的Unxcheckdatemktechoi18368219strtotechosttotim"w);echosroi("1day");echosroi("1eek");checkdatecheckdate()负责检测日期是否合法var(htvar(htvardup(hekdat(7,30,2015));日期时间相关函xue.t/thread-131-1-1.htm第五章字符串字符串定义方式如何定义字符串$str1$str1o$str2=;echo 如何定义大段的有两种方 中间不能插注释,前后保持致,$str$str=echo$str2$str2=<<<echo转义,变量解析,与速度的对比转$str1=$str1="\"\\\n\t\v$str2=\"\\\n\t\v\\$echo$str1,<br>对变量的解$name$name=$age=23ydecho$intro,<br>,$intro1;注意般支付功能都会有个密钥,而密钥般是自己随机敲的字符串//$key//$key=$key=adlkfjiu$adkjf232;echo$key;注意当我们引号包住字符串的时候,如果不是变量,不能出现$后面不能跟合法的变量名所 般情况下,我们不需要解析字符串中的变量的时候,有先用单引号包住字符串就不会这样的问题了速字符串常用函数字符串函数非常丰富且强大 定要认真练习ntstren($str)计算字符ntmb_stren(strng$str[,strng$encodng]strpos($str,searchnt]):search在$str中的第次位置从ntstrpos($str,searchnt]):函数返回字符串在另个字符串中第次出现的位置。该函数对大小strrpos($str,searchnt]):search在$str中的最后次出现的位置从str_repace(search,repace,$str):从$str中查找search用repace来替str_repace(search,repstrtr($str,search,repace):这个函数中repace不能为substr_repace($Str,$rep,$startength])$str原始字符串,$rep替换后字符串,$start起始位置,$ength第个的位置返回FALSE。strrchr从最后次搜索到的字符处返回;str_spt($stren):把$str按en长度进行分割返回mpode——将数组用特定的分割符转变为字符strngrtrm(strng$str[,strng$charst])chunk_spt($str,2);向$str字符里面按2个字符就加入个空格str_pad——对字符串进行两侧的补strpsashes(strng$str)get_magc_quotes_gpc()htmspecachars将字符串中些字符转换为HTML实htmspecachars_decode——htmspecachars()函数的反函数,将HTML实体转htm_entty_decode——htmenttes()函数的反函数,将HTML实体转换为字htmenttes将字符串中所有可转换字符转换为HTML实strcasecmp同上(不分大小写)计算字符串长度strenstrlen获取字符串长度(计算的是字节数ntstren(strng$strng$str1$str1=abcd$str2 echostrlen($str1);echostrlen($str2);用记事本分别保存:中国,个gbk,个utf8,分别观察占几个字节学习sesson和cooke的时候,有BOM头会报错因为在sesson或者cooke启用前有了输出如何去掉BOM头用edtpus[右下角编码带utf8表示有BOM]和subme(默认无BOM),都可以去掉BOM头]gbk个中文占2个字节,utf8个中文占3个字节mb_strlen获取字符串的长度(计算的是字符数)mb宽字节--国际编码支持(英文,法文中文等都支持)$str2$str2;echombstrlen($str2,utf8字符串位strpos—查找字符串首次出现的位查 个子串 $str$str=abcdeechostrpos($str,c注意FALSEFALSE的非布尔值,$str$str=abcde;if(strpos($str,a)==false){echo不存在}elseecho存在}if(strpos($str,$str2)===echo不存在}elseecho存在}替换字符str_replace—子字符串替换$reply$replyyouechostr,fk,公开或者评论,应该转换为'文明用语'是很必要的.涉及是不允许的strtr—转换指替换批字符串,第种写法$str$str,女人,男孩 echoechostrtr($str,array(男=>女,女=>男$str$str,女人,男孩 echostrtr($str男屁<br;echostrtr($str,人,屁);//此行是替换,中文易乱码,推荐上种用法substr—返回字符串的子串substr('大字符串','从哪个位置开始截取',[截取几个从0$str$strowordechosubstr($str,5),<br>;echosubstr($str,0,5),<br>;echosubstr($str,3,5);echoechosubstr($str,3),<br>;echosubstr($str,3,1);第3,从后往前数echoechosubstr($str,5,2),<br>拆分字符expexplode—使用个字符串分割另 1)博文的时候会发布$str$str=hpquy在写入数据库的时候我们需要将这几个拆成独立的$str$str=phpsqsudy;printr(explode(,,$str));拼接字符mpimplode— 维数组的值转化为字符将个数组的值,$arr$arr=array(name=>zhangsan,age=>23,gender=>man);echoilod(/,$arr);substr截取字符$file$file=a.jpgechosubstr($file,strpos($file,.)),<br>;echosubstr($file,strpos($file,.)1);5.5字符串相关面试第六章综合案例之文件管理系统<<DOCTYPE><hl<metacharset="UTF <h1>文件管理系统<table<td>名称<td>操作<td>查看>展示当 打 ->去读条目->关fopendrectoryopend打打开[资源>>关 打开当 的文件出$path=.$fh=opendir($path);echoreaddir($fh),<br>;echoreaddir($fh),<br>;echoreaddir($fh),<br>;echoreaddir($fh),<br> 用cmd窗口(直接dr查看即可)whe直出/////l(readdir($fh)==false{echoreaddir($fh),<br>}/l($row={echo$row,<br>}$path$path=.$fh=l(($row=readdir($fh))=={echo$row,<br>}在php页面中是可以任意嵌套htm只要不包含在<?php?>中,都理解为htm<<metacharset="utf$path=.$fh=<DOCTYPE><hl<metacharset="UTF <h1>文件管理系统<table<td>名称<td>操作l(($row=readdir($fh))=={echo<tr>echo<td$rowtd;echo<td>查看</td>;echo</tr>;>3.如果当 <<metacharset="utf$path=isset($GET[dir])?$GET[dir]:.$fh=<DOCTYPE><hl<metacharset="UTF <h1>文件管理系统<table<td>名称<td>操作l(($row=readdir($fh))=={echo<tr>echo<td>.$row.</td>echo<td><ahref="9.php?dir=$path,/$row,">查看,</a></td;echo</tr>;}>改进1:对于普通文件,直接打开看内容s_drs_f改进2:防范地址栏打../../..查看上级甚至磁盘内容reapath返回个绝对路径改进3:加个nput表单,通过[submt],提交,即可创 (例 ),s_drmkdr,先判 是否存第七章数组数组定义方式数组是php中,非常常用非常重要的个数据结构,如何来定 个数组数组是种复合数据,可以装下多个值,每个值用不同的键来区分.(键值对应)健->箱子上的编号printr($arr);数组类型数组的分类索引数组;关联数组;二维数组;数不需要刻意记录,它的循环都是用的索引$arr$arr=array(0=>a,1=>b,2=>c,3=>d);printr($arr);关联字符串做键,般能体现该单元的内容如age->,'关联数组'c语言中:结构体;java/python中:dct[字典],js中:对$arr$arr=array(name=>lisi,age=>23printprint那意味着,我在数组中的值中再存放个数组也是可以的二维数组数打开个箱子,发现里面又是组箱子$arr2$arr2=array(name=>lili,hobby=>array(0=>basketball,1=>football,2=> printr($arr);数组键规则数组的健不写可以吗健可以不分配健,系统会0,1,2...递增分$arr$arr=array(a,b,c);printr($arr);如果有的健分配,有的不分$arr1$arr1=array(name=>lisi,age=>23,running);printr($arr1);$arr2=array(0=>a,1=>b,c,5=>d,e,f);printr($arr2);$arr3$arr3=array(a,b,c,2=>d,2=>e);printr($arr3);注意如果字符串恰好理解为个整数,nu$arr$arrarray(2布,2.5尔2.5教2育,null好);printr($arr);在实际开发中操作数组单元数组是个复合数据,里面放了很多数据单独取出某个单元的值,用健来取$数组名[健$arr$arr=array(a,b,c);echo$arr[1],<br>;$arr2$arr2=array(name=>lisi,hobby=>array(basketball,football,echo$arr2[hobby][0];pang更改个数组单元的值$arr2$arr2[hobby][0]=swiig;printr($arr2);增加个数组单元$arr2$arr2[area]=beijing;printr($arr2);$arr2[area]=shanghai;printr($arr2);unsetunset($arr2[hobby]);printr($arr2);遍历数组$arr$arr=array(a,b,c,d,e);echo$arr[0],<br>;echo$arr[1],<br>;echo$arr[2],<br>;echo$arr[3],<br>;echo$arr[4],<br>;forfor($i=0;$i<count($arr);$i{echo$arr[$i],<br>}托盘称图讲解foreach循环遍历数foreach是专门用来循环数组的,速度非foreach里面的键值的变量名($k,$v)为任意合法的变量$arr$arr=array(name=>zhangsan,age=>24,area=>Beijingforeach($arras{echo$k,:<br>foreachforeach($arras{echo$v,<br>}foreachforeach($arras$k//错误的echo$v,<br>;}foreach($arras$k=>){//}array_keys—返回数组中所有的键把下面这个的数组的每个单元值变成原来的2$stu=array(lisi=>3,wang=>5,zhao$stu=array(lisi=>3,wang=>5,zhao=>6);printr($stu);printr($stu);//array(lisi=>6,wang=>10,zhao常见错误foreachforeach($stu$k=>$v){echo$v}printprint$v=$v}print正确foreachforeach($stuas$k=>$v)$stu[$k]=$v}print数组游标操作数组内部有个这样的游标, $arr$arr=array(a,b,c,d);echocurrent($arr),<br>;//a游标向前移动位echocurrent($arr),<br>echocurrent($arr),<br>游标向头部(向左)移动echoechoecho$arr=array(name=>lili,age=>23,$arr=array(name=>lili,age=>23,area=>Bj//不够强大和完hil$row={echo$row,<br>;}$arr$arr=array(name=>lili,age=>false,area=>Bj);hile$rw=current($arr)){echo$row,<br>;}each();可以当前指针指向的单元的健/值,且以数组形式返回$arr$arr=array(name=>lili,age=>false,area=>Bj);printr(each($arr));print$arr=array(name=>lili,age=>false,area=>Bj);i($row=each($arr)){print}$arr$arr=array(a,b,c);list($a,$b,$c)=$arr;echo$a,$b,$c;$arr$arr=array(name=>lili,age=>false,area=>Bj);i($row=each($arr)){list($k,$v)=$row;echo$k,:,$v,<br>;}数组常用函数arraykeyexists()inarray()arraychangekeycase();arraycountvalues();arrayfill();arrayfilter();arrayvalues()arraykeys()arraypush()arraypop()arrayshift()arrayunshift()arrayarray)arraymergerecursive()arraydiff()arraydiffassoc()arrayintersect()arrayflip();arrayu;arrayechoechocount(array(a,b,c如果不是数组则返回echoecho oword如果是nu则返回echoechoarray_key_exsts—检查给定的键名或索引是否存在于($arr$arrarraya青龙b白虎cnull);if(isset($arr[b])){echozai}elseechobzai}if(isset($arr[c])){echozai}elseechobzai}用array_key_ex$arr$arrarraya青龙b白虎cnull);if(arraykeyexists(c,$arr)){echozai}elseechobzai}n_array检查数组中是否存$arr$arrarrayabcnull);if(inarray(青龙,$arr)){echocunzai}elseechobcunzai}案例之小羊繁殖问题【程序【程序10,稍难些,学数组后再做】种羊生命长度为5满2生只小羊满四 生只小羊,5死初始有1只0岁的羊,20年后有多少羊。array_push将个或多个单元压入数组的末$arr$arr=array(a,b,c);arraypush($arr,d);printr($arr);array_pop将数组最后个单元$arr$arr=array(a,b,c);arraypop($arr);printarray_shift—将数组开头的单元移出数$arr$arr=array(a,b,c);arrayshift($arr);printarray_unshift在数组开头插入个或多个单$arr$arr=array(a,b,c);printr($arr);小羊繁岁$arr=array(1,0,0,0,0for($i=1;$i<=20;$ifor($i=1;$i<=20;$i)arrayunshift($arr,0);array//print//第2年和第4年,在2岁羊和4岁羊的笼子里面的养都生下了羊放在了0岁羊的笼子里$arr[0]=$arr[2]}printechoarray8只猴子围成个圈,按顺时针方向从1 然后从1号猴子开始,延顺时针方向报数,报到m再从出局的猴子的下只猴子开始报数,如此重复,直到剩下只猴子,它就是大王。)要求用户输入开始的猴子数,报数的最后个数字参考答案: read1051011.思路:将所有的猴子排成排,假设为个数组,如果这个单元不是m,则放在这个数组的最后个单元中,数组面试$arr1$arr1=$arr2=$arr3=//观察arr1,arr2,arr3的规律,写个函数//参数为//输出第八章超全局变量 $GET//地址栏上获得的$POST//POST表单发送//后面会学到以下三$N$$$SERVER//web服务器$ENV//服务器操作系统的环境变量,如操作系统型inuxwnmac,$GLOBALS 全局作用域中可用的全面试题:xue.t/thread-266-1-写个$_GET$_POST$arr$arr=function{}function{function{}function{printr($arr);printr($GET);echo<hr>;printr($}<<DOCTYPE><hl<metacharset="UTF <frmaction="1.php?id=3"> :<inputtype="text"nm=nm" :<inputtype="text"nm="mi"<p><inputtype="text"nam=i"id=""<inputyp="sumi">>>request_order="GP"request有合并的意思,先合并GET后POST,后者覆盖前$_SERVER—服务器和执行环境信 个包含了诸如头信息(header)、路径(path)、以及位置(scrptocatons)等等信息的数在wn下是apache,在nux下ngnx这里的环境指的是apache的个运行环境echoecho<pre>;printr($SERVER);SERVERSOFTWARESERVERNAMESERVERADDRSERVERPORTREMOTEADDRSCIPTME):$_ENV(enviroment环境)操作系统的环境操作系统的环境和安全密切相关,别人上传个.php就可以轻易查看到我们系统的环境,或者利用所以在php.n里面禁用了这个超全局变量varabes_order=getenv获取个环境变量的值echo在实际使用中,是禁用掉ENV的,如果想使用ENV的值,则可以用getenv获$GLOBALS它就像是全局变量 个花名$a$a=$b=2;functiont1(){print$GLOBALS[a]=}echo第九章常量意义特点变量特点:可以值,也可以修改它的值常量:值旦定义,不可更改就像现在的p2p,有个固定的利率,不会修改$money$money=$rate=echo$money= $rate,<br>$rate$rate=echo$money= 如何定义常量defne定义个常量definedefine(I,echoI;//常量名前不用加常量名除了不用加$了,跟变量名是样的,不过习惯上全大常量特点后值不能修改值,也不能重新,也不能销毁definedefine(I,3.14);I3.15//语法错误define(I,3.18);echoI;unset(I检测常量是否存在sset—检测变量是否设defned—检查某个名称的常量是否存////感叹号()if(defined(RATE}if(defined(RATE}echoif(defined(RATEif(defined(RATE}$name=RATE;echo$a,<br>;动态常量名跟动态变量名不样,动态变量名前面有$符号constant—返回个常量的值echoechoosant($ame//拿$name的值当常量的名看,并解开发中常用的效果defineddefinedDEBUG ((if(defined(DEBUG))defineDEBUG,false);//}var;常量的作functionfunction{}function{}function{define(I:般定义为字符串,整型,浮点,布尔第十章文件包含区别ncude和requncudencude_once包含requrerequre_once必须文件包含的作用文件包含的作用在于代码的重用 对比include和分别用ncude和requre引 个存在的php文$a$a=2.php$a$a=1;$a=//require(./2.php再分别用引入2-1.php$a$a=include(./21.php require(./21.php//require被包含文件不存在时,代码不会再往下执行,报致命错误,fatalecho什么时候用ncude和requ如果是第的代码等,可以用nc加_once和不加once的区_once作用:只引入1次,如果之前已过,不再重复$a$a=include(./2.php);include(./2.php);include(./2.php);includeonce(./2.php);includeonce(./2.php);includeonce(./2.php);echo如果引入些库文件,里面有很多函数,我们知道函数不能重复定义,注意:不加_once速度快些被包含文件里可以像函 样用2.phpreturnarray(a,b,c/printr($arr);面试题xue.t/thread-175-1-1.htm第十一章综合案例 及DNS概念IP:是计算机互联网中的"门牌号23(局域网在互联网上发布的所用的IP是公网hosts文件,,DNS服务器相互,有IP的概念,有机器名的概念.为了解决机器名与IP的转换问题的人想 个简单办法 hosts文件于是就建立起专门服务器,专门负责解析与IP的关系.全球有10多台根DNS服务器,分布式在全球有好多子服务器;每天都在承受几百亿次的方出于历史的先后顺序,hosts文件和DNS服务器都解析了个谁的优先级更高?->hosts文件wndowsC:/Wndows/System32/dr将他们自己的,解析到badu的地址上,他们的量剧增,可以解析到上千万的p167.8.91Apache虚拟主机配置空间很便宜,才几十就能年个服务器只有个IP,服务器上那么多的不同的在浏览器上输出的内容都不样,虚拟主机:就是告诉apache,对于不同的,引导到不同的它就是说明了个关系: 的个对应关具体的操作更改hosts文C:\Wndows\System32\dr改apache的主配置文nueconf/extra/httpd将ncude包含的这个文件引入,去 的改httpd-C:\wamp\bn\apache\Apache2.4.4\conf\extra\只需要留下servername和 并在bog下写个ndex.htm首页等待b 的最后重启课后作业在自己机器上建立2,主页分别显示he ,和heo要求:从其他的机器也能够第十二章进制与位运算以下章节较难,但是使并不频繁能理解最好,不能理解可以作为个了解进制概念8进2进1010进......万位千位百位十位个 echo123,<br/>;//从右到左3个位,分别是以1顶1,以1顶10,以1顶100echo13102 1001,<br/>;进制说白了就是以1顶几8进制(满8进8进制08echoecho0123,<br/>;//从右到左3个位,分别是以1顶1,以1顶8,以1顶64echo027,<br/>;//23echo028,‘<br/>’;//2,当出现不合法值,16进制(满16进16进制,前导0x代表16,0123456789abcdeechoecho0x123,<br/>;//从右到左3个位,分别是以1顶1,以1顶16,以1顶256echo0x1c,<br/>;2进制(满2进前导0b代表2进制////从右到左,分别以1顶1,顶2,顶4,顶8,顶16....echo0b0011;echo1个字节占8个00000000echo0becho;//128(中间的位置大约是画个圆,个字节的占8个位,从1-1010进 2进 0000 11111111,12864比如在mysq中,nt则理解为-1,unsgnednt无符号类型全是正数)理解为PHP的nt取决于8个位的最左面的位(最)是否为1如果为1则是负数-1~-128如果为0则是整数课后作业DEC25圣诞节OCT31考进制转换位运算什么是位运算&|^<<位上有1/0,如果将1/0当成真假来看,1是真0是&逻辑echo5&echo5&12500000000&0000|逻辑echo 12echo 125000000000000^逻辑异逻辑异或^,两者不样则为真两 0000*0000echo5^12~逻辑~只能求个字符,1->0055~00001111echo~5//位运按位左移空位补 00000000echo5<<按位右移空位补 00000000echo5>> 00000000echo5>>如何 个数快速的增大8倍echoecho第十三章浮点数不够精确10进制,小数点右边的第位数,10^-1,是以12进制,小数点右边的第位数,2^-1,是以11010进 2进 0.8= 1/1024在计算机中,是有字节限制对于个小数在10进制下,是有限的,2,必定是要舍去部分的.因此,损失些精度,导致浮点数计算和数学上结果不致.ifif((0.10.2)==0.3)echoeq}elseechoneq}银行般都存整数,浮点数运算的不精确性可以产生性的.1991年2月25日,在海湾期间,沙特阿拉 的飞毛腿失败.飞毛腿个,造成28名士兵.总审计局(GAO)对失败原因做了详细的分析,并且确定了,个潜在的原因在于个数字计算不精确.爱国者系统中,有个内置的时钟,实现个计数器,每0.1秒就加1.为了以秒为单位来确定时间,程序用个24位近似于1/10的2进制小数值来乘以计数器的值.特别地:0.1转成2进制序列是无序序列 [0011]..2进制问当系统初始启动时,0开始,并且保持计数,在这个例子中,100个小时程序计算的时间和实际时间相差了多少?问:系统根据枚来袭的的速率和它最后被侦测到的时间,来预测他将在哪里出现.假定飞毛腿的速率约为200米/秒,对它的距离预测偏差了多少.第十四章逻辑运算的短路特性 $house$house=$c

温馨提示

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

评论

0/150

提交评论