传智播客PHP学习笔记第三天_第1页
传智播客PHP学习笔记第三天_第2页
传智播客PHP学习笔记第三天_第3页
传智播客PHP学习笔记第三天_第4页
传智播客PHP学习笔记第三天_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、时间戳表示时间的方法,从某一个时刻(1970-1-10:0:0)开始,到当前,没过一秒,数加1;q5echo11;|求得当前的时间戳二echotime();这个数据也是在计算机内采用一个整型数据来表示的。浮点数:双精度数。Sfloatl=3.IS;13var_dump($floatl);1415$float2=19/3;16var_dump($float2);float(3.3333333333333)定义浮点数可以采用科学计数法$float3=2.5E13:var_dump($float3);/float(250000100000000)$float4=2.5E-3;var_dump($fl

2、oat4);/float(0.025)在描述的时候,通常Number=int+float特别注意:由于使用浮点数时需要表示精度,因此有些数据在保存的时候,会丢失精度。所以不要通过判断两个浮点数是否相等来获得业务逻辑。33$fl=0.7;34$千2=1-9.3;35var_dump($-Fl-=$千2);判断两个值是否相等/bool(true)$f3=0.3;$f4=1-0.7;lvar_dump($f3=$f4);/41/bool(false)字符串:定义字符串单引号使用单引号包含需要定义的字符串内容即可:|$strl=1abed1;6var_dump($strl);双引号:S$str2=Me

3、fgh,1;var_dump($str2);单引号与双引号的根本区别在于,是否可以解析字符串内部的变量。IS$name=p三我行U16$str3=hello$name;$str4=*hello$name;1920var_dump($str3j$str4);21string(ll)helloinamer,string(15)hello任我行双引号可以解析,而单引号不行。因此双引号的解析速度要低于单引号的解析速度,能够使用单引号就尽量使用单引号。如果使用单引号定义时,需要定义的字符串内部包含单引号echothissdog1;Jf28echotomsayhelloworld!1碰到这个情况,应该转义

4、内部的引号:25echothis1sdog1;26echo11;noZo29echor,tomsayXhelloworld!究竟哪个变量会被解析?是否能被解析取决于是单引号还是双引号定义的:$name=,令派冲匕$str7=hello$name;$str8=hello$name1;Iua_dump($str乙$strS);/hello令狐冲/hello$nameir如果在解析变量时不能清晰的区分变量名,那么不能正确的识别需要解析的变量$name=岳不群1;$str9=helloJnameThankyou1;45var_dump($str9);/helloJ46/八611。岳不群丁血口1。11q

5、47/hello$nameThankyou可以在需要解析的变量周围使用大括号包含起来:$name=,岳不群1$str9=fhello$n3ni0Thankyouua_dump(str9);/ieljohell。岳不群Thankyou大括号在双引号内,碰到$时,会去解析:42$name=岳不群匕43$str9=Mhello$nameTharkyou45var_dump($str9);/hello5/hello岳不群Thmnkyou转义符号的使用的使用:如果在字符串的最后使用转义字符时:56$strll=abed、1;57echoJstrll;需要将最后的转义字符进行转义:54echo11;55工

6、56$strll=abcdW当换57ec|ho在双引号定义字符串时,转义字符还有特殊的含义,可以转义很多有其他含义的字符:其中n蜿行符立水平常排符Tabechor;$strl2=aXnbXtc11;var_dump($strl2);/string(5)(a/hrr,还可以转义8进制或者16进制数,所对应的ascii码内的字符:制的转携面使用,:带pos用 dK.phpecho 1 r;$strl3 = T, a ;$strl4 = T,x61;var_dump($strl3j $strl4);echo chr(34);a97A65除了单引号和双引号,还有两种定义字符串的方式:当需要定义一个比较

7、复杂的字符串时,此时单引号和双引号就略显乏力。复杂:1,多行2,包含一些需要特殊处理的字符Php还支持一种专门定义复杂字符的形式,定界符:Heredocnowdoc定界符的开始标记字符串的内容内容oOOO定界符的结束标记其中开始标记与结束标记应该一致HeredocI凸1t+85$strl5=SCR8637日functionfl(name)alert(hello+name);)f1(*$name1);/scriptSCR;NowdocQ7利的转换$strl6=SCRrBfunctionf3(name)alert(Hf3:hello,T+name);f3(*$name);SCR:Heredoc与n

8、owdoc在形式上,只有开始的标签有区别,nowdoc的开始标签存在单引号。在使用上,heredoc类似双引号可以解析内部的变量,而nowdoc不能解析内部的变量。总结:如果单引号,双引号,定界符,都是为定义字符串而用。强调,我们经常使用定界符的形式来定义html代码javascript代码字符串。注意:关于定界符的结束标记:有个严格的要求(必须定格写)结束标记只能单独在一行,而且在此行不能存在其他字符。92卜93SCR;布尔类型真假布尔型只有2个值true表示真false表示假,不区分大小写Sbooll=true;6$bool2=FALSE;I4$booll=true;$bool2=FALS

9、E;8var_dump($booll$bool2);有时可能会使用1或者0表示true或false。但是注意,1,0是在运行时被转换成了true和false1,0本身并没有真假的含义。复合数据类型,一个数据表示多个值无论数组还是对象多应该可以保存多个值。数组:是一组数据的集合。如何使用数组内的某个值呢?如何定位一个数组内的元素。数组是由元素组成的。元素是由一个键值对来表示的。一个元素是由一个键对应上一个值来标志我们是通过数组元素的键,来引用某个元素的值的。定义一个数组:采用array()的语言结构:元素与元素之间采用逗号分割。而元素键与值之间使用=来表示$arrl=array(-keyl1=1

10、valuel1,1key2value21,1keyNh-1valueN1);6var_dumpfSarrl);获得一个数组的元素的值:利用中括号语法,来定位数组内的某个键值对:8echo$arrl1key21;我们可以通过中括号语法,获得某个数组元素的值,设置某个数组元素值,为数组增加元素,删除某个数组元素。增$arrlkey31=1value31;var_dump($arrl);修改echo1;$arrl1key21=1valueTwo1;var_dump($arrl);俪除unset($arrl1keyl1);/unset($arrl);echo1;var_dump($arrl);判断一个

11、数组内是否存在某个元素:23echo1;创建数组的另外的形式:况r役不存在的情况下,也可以骁得一个新 数组元素的下标:一个数组元素的下标 只能是 字符串型或者是 整型。I使用.343536 3$arr3false = false;var_dump($arr3);语法上可以写,但是可以转换array(1) 0= bool(false) 我们在定义数组元素时,可以不指定元素下标:那么系统会为元素自动分配型的值是 当前已存在的数组元素的最大的整型下标+1;默认是从0开始。整型下标。整24var_dump(isset($arrlkeyN);|echo11;40$arr4=array(a2=b41/va

12、r_dump($arr4);T42中括号转换43$arr46=d1;44$arr4=e;45var_dump($arr4);.Php口的额外用法:字符串如果被看成是字符的集合的话,那么每一个字符就是字符串内的某个元素。因此,我们在访问字符串时,可以通过中括号语法来获得字符串内的某个字符元素。16$strl=abcdefg1;18echo$strl;、19echo1;20echo$strl3;相当于下标为o字符串的特殊性还在于:上面的中括号,还可以使用大括号来代替:yecnoname =仪琳, Sstiil- = 13; var_dump($E,tul);由于是集合数据类型,就应该至少提供保存多

13、个值的能力。objccl(Student)frl(2)【Fane二3ctrinsCG仪in-:(QS)除此之外,对象还可以有处理保存的数据的能力。口classStudentpublic$name;35publicSage;36public function newYear() $this* age +;37b3839464142$stul=newStudent;$stul-name=仪环;$stulage=18;$stul-nwYa();有时会将对象称之为有生命力的数组。特殊数据类型资源在通过php去操作不完全属于PHP的资源时。例如数据库的连接管理,操作文件的管理。都会产生资源:斗5Slin

14、k=mysql_connect(localhosttroot,11234abcd);6var_dump($link);resource(3)oftype(nysqllink)不能通过用户手动创建,而需要通过php的内置函数来获得资源。of type Lnysql link!同样都是资源型数据,但是也有类型之分:resource(5)oftype(stream)NULLNULL只有一个值就是NULL不区分大小写。表示什么都没有。不是0不是空字符串当我们直接使用一个不存在的变量时:7var_dump(Jvl);当使用一个被unset掉了的变量时:I18,19$vl=1ok1;20unset($vl

15、);|21var_dump($vl)当为一个变量赋值为NULL时:23echo11;24$v2=null;=25var_dump($v2);整地一有时将一个对象赋值为null,用于销毁该对象。伪类型:在进行对程序的描述时,有时需要某些不存在的类型:number指的是整型和浮点型。mixmox(number用算Inumbei知年)mixed类型:类型不确定,可能是多个类型之一:void var_dump (|mixei工 iexpressimi f (TliXCl fcxprcssi&n ,5.| )callback,指的是期望的数据是一个可以被调用执行的函数。(回调)callable,指的是期

16、望的数据是一个可以被调用的结构。指的是一个对象的方法。(可调)类型转换:为了保证程序的顺利执行,会在执行过程中,将数据向合适的类型做转换。转换的过程分 成(强制,自动)。称之为类型转换;467891011$str = 110ab*;$int = 12;var_dump($2tr +加法运 jSinti = 13;SFloatl = 3,13;var_dunip($tl + Sfloatl);其中:、te?t. etxn r13. php火我官方站点,二;4问盘翟幽窘羊卜雷 军用阿 int (22)float (1M3)强制类型转换:用户通过用户脚本将数据进行类型转换。(手动类型转换)自动类型转

17、换:不需要用户脚本参与系统将类型自动发生变化。14 $int2 = IS; 15 $bool2 = (bool)$int2;/强制手动 16 var_dump($bool2 );9 $intl = 13;19 Jfloatl = 3.13;nkll var_dump($intl + $flomtl);自动类型转换如何强制(希望转换数据类型)数据希望转换数据类型BoolIntfloatStringArrayObjectunset$bool3=false;$arr3=(array)$bool3;var_dump($arr3);$obj3=(object)$|bool3;var_dump($obj3

18、);通常使用自动类型转换就可以适用于大多数的业务逻辑:类型转换比较容易出问题地方:将其他数据类型向布尔型转换:空和0被转换成假false,其余的被转换成true。资源和对象始终为true。具体的转换大家参见表格:-HlPHP手册A圜版权信息+1PHP手册+1入门指引十安装与配置+1语言参考+1,安全+1.特点+函数参考+,PHP核心;工end引擎的黑客指南1曝映-0附录EPHP及其相关工程的历史+MigratingfromPHP5.3.,toPHPE小4从PHP5.2.x移植到PHP5.3.x+MigratingfromPHP5.L*toPHPE+,MigratingfromPHP5.0.zt

19、oPHPE不从PHF4移植到FHP5+类与对飘CPHP4)+PHP的调试+配置选项+0php.ini配置k犷展库分类同函数别名列表+保留字列表图演源类型列表+可用过滤器列表*所去挂的套捺宝传愉器(SocketTransFHP类型日理解析而代号列衷+,UserlandNamingGuide了解以下与数据类型相关的函数:Var_dump();输出数据与类型Is_type系列函数,判断一个数据是否属于某种类型:Is_numeric();检测是否是一个数值Is_scalar()检测一个数据是否是标量数据类型Isset()检测一个变量是否定义:注意,isset在判断一个值为unll的数据的时候,返回为f

20、alse。而且,在使用isset判断时,如果一个变量没有定义,也不会报告notice的错误。Empty()判断一个数据是否为空:empty的返回值相当于转换成bool型数据的取反操作。意味着如果一个数据在转换的时候,结果为true,那么用empty判断就为false.$v3=f$v4=00;var_dump(bool)$,力(bool)$v4);/falsetruevan_durnp(empty($v3)empty($v4)*/true-FalseEmpty和isset会有什么区别?与isset一样,如果使用empty判断到一个没有定义的变量,那么结果为true。也不会报告一个notice级别

21、的错误。测试以下:108109echo11;lie$str=1abc1;llisif($str=0)112echo1yes1;113日else114echo*no1;制的第ns1i较dJ116/yes运算符:PHP了流程控制Php代码的执行顺序通过程序提供的语言结构,来控制程序代码的执行顺序,叫做流程控制。典型的三种流程:顺序结构:分支结构(选择结构):循环结构:有时,在编写代码之前,先要设计好我们的程序。通常会采用流程图的形式来设计和描述我们的流程。流程图:以图例的形式表示业务(代码)执行流程。流程图使用的常用图例:1,表示开始和结束:2,表示某个进程(任务)也定循出的*何必人值5表示数据的

22、输入:顺序结构:工程N期待一个布尔类型数据 如果$8而为其他类型, 合格数据转化成“。型分支结构:If系列1,只有在条件满足时,才会执行的某段代码$cond=true;一-if($cond)成功时执行的代码2,带有else条件的分支:IIJbV次11日if($cond)V12成立时执行的代码卜工3日else|14不成立时执行的代码卜,3,带有elseif的分支,多分支180if($condl)19秦件1成立时执行的代码20日elseif($cond2)21条件2成立时执行的代码日|elseif($condN)23条件N成立时执行的代码可以省略24日else(25/所有1-n都不成立时执行的代码

23、,264,带有elseif的:28if($condl)29条件1成立时执行的代码30selseif($cond2)31条件2成立时执行的代码32日elseif(JcondN)33条件N成立时执行的代码34日else35所有1-n都不成立时执行的代码,可以省略36上面的语法的原因是:A,if语句可以相互嵌套。满足条件时所执行的进程语句内还可以包含if语句B,如果条件成立时所执行的语句段,只有一条语句的话,可以省略进程语句端的大括号。503940sif($cond)41echo1yes1;4243141日if($cond)45echo1yes1;46因此上面的语法elseif的语法if语句。其实是,当else的成立时,else所执行的语句只有一个就是一个潜逃的下面就是进化的过程:else内嵌套了一个f已3内只有一条储句 可以省略可漏的大括号 将if将前靠进52if($condl)53日else54if($cond2)55565758if($condl)59日else60if($cond2)616263if($condl)64elseif($cond2)656667但是在使用上,结果是一致的。当我们使用流程控制语句的替代语法时。替代的进程语句块的大括号。bif($cond)echo1vesif($cond):*ech

温馨提示

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

评论

0/150

提交评论