资源描述
PHP,基本语法,第二章,目录,01,PHP,入门,02 PHP,数据的输出,04 PHP,的变量和常量,05 PHP,的运算符和表达式,03 PHP,的数据类型,01,PHP,入门,PHP,标记,PHP,标记告诉,Web,服务器,PHP,代码何时开始、结束。这两个标记之间的代码都将被解释成,PHP,代码,,PHP,标记用来隔离,PHP,和,HTML,代码。,PHP,的标记风格有如下:,(,1,)以“,”,结束(,XML,风格),这是本书使用的标记风格,也是最常见的一种风格。它在所有的服务器环境上都能,使用所以,推荐用户都使用这种标记风格。,(,2,)以“,”结束(简短风格),(,3,),script,标记风格(脚本风格),script language=php,/PHP,代码,这是类似,JavaScript,的编写方式。,PHP,标记,01,PHP,入门,(,4,)以“,”结束(,ASP,风格),这与,ASP,的标记风格相同。与第(,2,)种风格一样,这种风格默认是禁止的。,01,PHP,入门,PHP,标记,注意:,(,1,),第二种和第四种在使用时,需要分别在配置文件中做如下设置。将代码段中的“,OFF,”改为“,ON,”,更改后代码如下:,short_open_tag=On,asp_tags=On,重新启动,Apache,服务器。,需要注意的是,为了保证程序的兼容性,不推荐使用这种标记。,(,2,)在,PHP7,中,仅支持标准标记(,)和短标记(,01,PHP,入门,PHP,标记,注释,可以理解为代码的解释说明,一般添加到代码的上方或代码的尾部。使用注释不仅能够提高程序的可读性,而且还有利于程序的后期维护工作。在执行代码时,注释部分会被解释器忽略,因此注释不会影响到程序的执行。,PHP,支持以下,3,种风格的程序注释,:,(,1,)单行注释(,/,),PHP,的注释,01,PHP,入门,(,2,)多行注释(,/*/,),注意:多行注释可以嵌套单行注释,但是不能再嵌套多行注释。,01,PHP,入门,PHP,的注释,(,3,),Shell,风格的注释(,#,),01,PHP,入门,PHP,的注释,PHP,程序由一条或多条,PHP,语句构成,每条语句都以英文分号“,;”,结束,。如果,多条,PHP,语句之间存在着某种联系,可以使用“,”,和“,”,将这些,PHP,语句包含起来形成一个语句块。,PHP,的语句和语句块,语句,块一般不会单独使用,只有在和条件判断语句、循环语句、函数等一起使用时,语句块才会有意义。,01,PHP,入门,在,网站开发过程中,经常需要在程序中定义一些符号来标记一些名称,如:类名、方法名、函数名、变量名等,这些符号被称为标识符,。,PHP,的标识符,01,PHP,入门,在,PHP,中,定义标识符要遵循一定的规则,具体如下:,标识符只能由,字母、数字和下划线,组成。,标识符可以由一个或多个字符组成,必须以,字母或下划线开头,。,当标识符用作变量名时,,区分大小写,。,若标识符由多个单词组成,那么应使用下划线进行分割,,如:,user_name,。,PHP,的标识符,01,PHP,入门,举例说明:,合法标识符:,itcast,、,itcast88,、,_itcast,、,username,、,password,等。,非法标识符:,66itcast,、,it cast,、,123,、,itcast,等。,01,PHP,入门,PHP,的标识符,关键字,是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字。如:,class,关键字用于定义类,,echo,用于输出数据,,function,用于定义函数,。,在,使用以下列举,的关键字时,需要注意以下两个地方:,关键字不能作为常量、函数名或类名使用。,关键字虽然可作为变量名使用,但是容易导致混淆,不建议使用。,PHP,的关键字,01,PHP,入门,PHP5,中的关键字,and,or,Xor,_FILE_,exception,_LINE_,array(),As,break,case,class,const,continue,declare,default,die(),do,echo,else,elseif,empty(),enddeclare,endfor,endforeach,endif,endswitch,endwhile,eval(),exit(),extends,for,foreach,function,global,if,include,include_once,isset(),list(),new,print,require,require_once,return,static,switch,unset(),use,var,while,_FUNCTION_,_CLASS_,_METHOD_,final,php_user_filter,interface,implements,extends,public,private,protected,abstract,clone,try,catch,throw,this,01,PHP,入门,PHP,的关键字,02 PHP,数据的输出,PHP,中最常用的输出语句是,echo,语句,,除了,echo,语句之外,还可以使用,print,语句,向浏览器输出数据。,相同:,都用于向页面中输出数据。,print,和,echo,不同:,(,1,)输出多个字符串时,用逗号隔开,使用,print,语句一,次只能输出一个字符串,而使用,echo,语句可以同时输出多个,字符串。用,“,.,”,隔开,,,echo,语句与,print,语句均可输出。,(,2,),print,语句可以看作是一个有返回值的函数,因此,print,语句能作为表达式的一部分,而,echo,语句不能。,02 PHP,数据的输出,print,和,echo,如果,需要在,HTML,代码中只嵌入一条,PHP,输出语句,可以使用,PHP,提供的另一种便捷的方法:使用输出运算符“,”,来输出数据,。例如:将页面的背景颜色设置为蓝色,代码如下:,输出运算符“,”,02 PHP,数据的输出,03 PHP,的数据类型,在,网站开发的过程中,经常需要操作数据,而每个数据都有其对应的类型。,PHP,中支持,3,种数据类型,分别为标量数据类型、复合数据类型及特殊数据类型,,PHP,中所有的数据类型如下图所示,。,(,1,)布尔型,布尔,型是,PHP,中较常用的数据类型之一,通常用于逻辑判断,它只有,true,和,false,两个值,表示事物的“真”和“假”,并且不区分大小写。,注意:,在,特殊情况下其他数据类型也可以表示布尔值,比如:,0,表示,false,,,1,表示,true,。,标量数据类型,03 PHP,的数据类型,(,2,)整型,整型,用来表示整数,它可以由十进制、八进制和十六进制指定,且前面加上“,+”,或“,-”,符号,可以表示正数或负数。,八进制数使用,07,表示,且数字前必须加上,0,。,十六进制数使用,09,与,AF,表示,数字前必须加上,0 x,。,03 PHP,的数据类型,标量数据类型,八进制和十六进制表示的都是十进制数值,59,。,若给定数值大于系统环境的整型所能表示的最大范围,会发生数据溢出,导致程序出现问题。如:,32,位系统的取值范围是:,-,-1,。,03 PHP,的数据类型,标量数据类型,$octonary=073;/,八进制数,$decimal=59;/,十进制数,$sexadecimal=0 x3b;/,十六进制数,(,3,)浮点型,浮点,型可以保存浮点数或整数,浮点数是程序中表示小数的一种方法,也可以是整数,在,PHP,中,通常有两种方式表示浮点数:标准格式和科学计数法格式,。,03 PHP,的数据类型,标量数据类型,$fnum1=1.759,;/,标准格式,$,fnum2=-4.382;/,标准格式,$,fnum3=3.14E5;/,科学计数法格式,$,fnum4=7.469E-3;/,科学计数法格式,注意:,不管,采用哪种格式表示,浮点数的有效位数都是,14,位。,有效位数,就是从最左边第一个不为,0,的数开始,直到,末尾,数的个数,且不包括小数点。,03 PHP,的数据类型,标量数据类型,(,4,)字符串型,字符串,是连续的字符序列,由数字、字母和符号组成。字符串中的每个字符只占用一字节。定义字符串有三种方式,:,单引号(,),双引号(,”,),定界符(,),如果在单引号和双引号定义的字符串中包含变量名,那么它们的输出结果是完全不同的。双引号中所包含的变量名会自动被替换成变量的值,而单引号中包含的变量名则按普通字符串输出。,03 PHP,的数据类型,标量数据类型,03 PHP,的数据类型,标量数据类型,$name=Tom;,$,area=China;,echo,$e from$area;/,输出结果为:,Tom come from China,echo,$e from$area;,/,输出结果为:,Tom come from$area,值得一提,的是,,PHP,的字符串中可以使用转义字符。,例如:在双引号字符串中使用双引号时,可以使用“,”,”来,表示。双引号字符串还支持换行符“,n”,、制表符“,t”,等转义字符的使用。而单引号字符串只支持“”和“,”,的转义(除了转义的单引号(,)和转义的反斜杠(,)之外,它们将分别被打印为一个单引号和一个反斜杠。,),03 PHP,的数据类型,标量数据类型,复合,数据类型将多个简单数据类型组合在一起,存储在一个变量名中,包括两种(数组和对象),。,复合数据类型,1.,数组,(array),2.,对象(object),03 PHP,的数据类型,特殊数据类型包括两种(资源和空值)。,特殊数据类型,1.,资源(,resource,),2.,空值(,NULL,),资源,是由专门的函数来建立和使用的。它是一种特殊的数据类型,并由程序员分配。在使用资源时,要及时地释放不需要的资源。如果忘记了释放资源,系统会自动启用垃圾回收机制,避免内存消耗殆尽。,空值,,表示没有为该变量设置任何值,另外,空值(null)不区分大小写,null和NULL效果是一样的。,03 PHP,的数据类型,PHP,还内置了检测数据类型的系列函数,可以对不同类型的数据进行检测,判断其是否属于某个类型。,检测数据类型,函 数,检 测 类 型,is_bool,检测变量是否为布尔类型,is_string,检测变量是否为字符串类型,is_float/is_double,检测变量是否为浮点类型,is_integer/is_int,检测变量是否为整数,is_null,检测变量是否为null,is_array,检测变量是否为数组类型,is_object,检测变量是否为一个对象类型,is_numeric,检测变量是否为数字或由数字组成的字符串,03 PHP,的数据类型,通常,情况下,数据类型转换分为自动类型转换和强制类型转换。,(,1,)自动类型转换,数据类型的自动转换是指在定义常量或变量时,不需要指定常量或变量的数据类型,在代码执行过程中,,PHP,会根据需要将常量或变量转换为合适的数据类型,但是在转换时也要遵循一定的规则。,数据类型转换,03 PHP,的数据类型,(,1,)布尔型数据和数值型数据在进行算术运算时,,TRUE,被转换为整数,1,,,FALSE,被转换为整数,0,。,(,2,)字符串型数据和数值型数据在进行算术运算时,如果字符串以数字开头,将被转换为相应的数字;如果字符串不是以数字开头,将被转换为整数,0,。,03 PHP,的数据类型,数据类型转换,(,3,)在进行字符串连接运算时,整数、浮点数将被转换为字符串型数据,布尔值,TRUE,将被转换为字符串,1,,布尔值,FALSE,和,NULL,将被转换为空字符串,。,(,4,)在进行逻辑运算时,整数,0,、浮点数,0.0,、空字符串,、字符串,0,、,NULL,以及空数组将被转换为布尔值,FALSE,,其他数据将被转换为布尔值,TRUE,。,03 PHP,的数据类型,数据类型转换,$,base,是在进行加法运算时,,PHP,自动将,$base,转换成整型。,所以最后输出的结果为,int(5400),。,03 PHP,的数据类型,数据类型转换,$base=1800;,$,salary=$base+3600;,/,通过,var_dump(),函数打印变量的值和数据类型,var_dump,($salary);/,输出结果为:,int(5400),当,字符串型转换为整型时,若字符串是以数字开始,则使用该数值,否则转换为,0,。,03 PHP,的数据类型,数据类型转换,if(123abc=123),echo,123;/,输出结果为:,123,if,(abc=0,),echo,456;/,输出结果为:,456,(,2,)强制类型,转换,a.,应用括号括起来的类型名称进行转换,所谓,强制类型转换,就是在编写程序时手动转换数据类型,在要转换的数据或变量之前加上“,(,目标类型,)”,即可。,强制类型,功能描述,(,boolean,),强转为布尔型,(,string,),强转为字符串型,(,integer,),强转为整型,(,float,),强转为浮点型,(,array,),强转为数组,(,object,),强转为对象,03 PHP,的数据类型,数据类型转换,03 PHP,的数据类型,数据类型转换,var_dump(boolean)-5.9);/,运行结果:,bool(true),var_dump,(integer)hello);/,运行结果:,int(0),var_dump,(float)false);/,运行结果:,float(0),var_dump,(string)12);/,运行结果:,string12,b.,使用,以val结尾的函数名的函数,函数名,语法格式,返回值,intval,int intval(mixed var),返回var的整数值,floatval,float floatval(mixed var),返回var的浮点数值,strval,string strval(mixed var),返回var的字符串值,03 PHP,的数据类型,数据类型转换,c.,使用,settype(),函数,bool settype(mixed var,string type),语法,参数var为指定的变量。,参数type为指定的类型,参数type有7个可选值:boolean、,float、integer、array、null、object和string。如果转换成功,则返回true,否则返回false。,参数说明,03 PHP,的数据类型,数据类型转换,04 PHP,的变量和常量,常量,的概念:常量是指在脚本运行过程中值始终保存不变的量,。它,的特点是一旦被定义就不能被修改或重新定义。,例如:,数学中常用的圆周率,就是一个常量,其值就是固定且不能被改变的,。,(,1,)使用,define(),函数定义常量,语法:,define(string constant_name,mixed value,case_sensitive=true),PHP,的常量,参 数,说 明,constant_name,必选参数,常量名称,即标志符,value,必选参数,常量的值,case_sensitive,可选参数,指定是否大小写敏感,设定为True,表示不敏感,04 PHP,的变量和常量,PHP,的常量,define(CON,itcast,true);,echo,CON;,echo,con;,(,2,)使用,constant(),函数获取常量的,值,语法:,mixed constant(string const_name,),(,3,)使用,defined(),函数判断常量是否已经被定义,语法:,bool,defined(string constant_name),04 PHP,的变量和常量,PHP,的常量,define(CON,itcast,true);,echo,constant(CON);,(,4,),const,关键字,使用,const,关键字定义了一个名为,pai,,值为,3.14,的常量,。,思考:,使用,define(),函数来定义名为,MESSAGE,的常量,使用,constant(),函数来获取该常量的值,最后使用,defined(),函数来判断常量是否已经被定义。,04 PHP,的变量和常量,PHP,的常量,const pai=3.14;,echo,pai;,(,4,)预定义常量,预定,义常量可方便开发人员获取,PHP,中的信息,需要时直接使用或通过,echo,输出就可以获取相关的信息。,04 PHP,的变量和常量,PHP,的常量,PHP,中常用的预定义常量,常量,名,功能描述,PHP_VERSION,获取,PHP,的版本信息,如,5.4.38,PHP_OS,获取解析,PHP,的操作系统类型,如:,WINNT,PHP_INT_MAX,获取,PHP,中,Integer,类型的最大值,2147483647,PHP_INT_SIZE,获取,PHP,中,Integer,值的字长,如:,4,E_ERROR,表示运行时致命性错误,使用,1,表示,E_WARNING,表示运行时警告错误(非致命),使用,2,表示,E_PARSE,表示编译时解析错误,使用,4,表示,E_NOTICE,表示运行时提醒信息,使用,8,表示,04 PHP,的变量和常量,PHP,的常量,示例:,04 PHP,的变量和常量,PHP,的常量,变量,的概念:变量就是保存可变数据的容器,。,变量,的命名:变量是由,$,符号和变量名组成的,其中变量名的命名规则与标识符,相同(,标识符只能由,字母、数字和下划线,组成;可以,由一个或多个字符组成,必须以,字母或下划线,开头;,当,标识符用作变量名时,,区分大小写,。)。,例如:,合法,变量:,$test,、,$_test,、,$age,、,$_name,非法,变量:,$123,、,$*math,、,$u,、,$,6_it,PHP,的变量,04 PHP,的变量和常量,注意:,声明的变量不可以与已有的变量重名,否则会引起冲突。变量的名称应采用能反应变量含义的名称。,04 PHP,的变量和常量,PHP,的变量,变量,的赋值:,PHP,中的变量赋值分为两种,一种是默认的传值赋值,另一种是引用赋值,。,(,1,)传值赋值,就是指整个原始表达式的值被赋予到目标变量。,当,变量,$age,的值修改为,100,时,,$num,的值依然是,12,。,04 PHP,的变量和常量,PHP,的变量,$age=12;,$,num=$age;,$,age=100;,echo,$num;,(,2,)引用赋值,就是在要赋值的变量前添加“,&”,符号。,当,变量,$age,的值修改为,100,时,,$num,的值也随之变为,100,。,由于引用赋值的方式相当于给变量起一个别名,当一个变量的值发生改变时,另一个变量也随之变化。,04 PHP,的变量和常量,PHP,的变量,$age=12;,$,num=,$,age=100;,echo,$num;,05 PHP,的运算符和表达式,(,1,)算术运算符,在,数学运算中最常见的就是加减乘除运算,也被称为四则运算。,PHP,中的算术运算符就是用来处理四则运算的符号,这是最简单、最常用的运算,符号。,运算符,意义,范例,结果,+,加,5+5,10,-,减,6-4,2,*,乘,3*4,12,/,除,5/5,1,%,取,模,(,即算术中的求余数),7%5,2,在实际应用过程中还需要注意以下两点:,(,1,)四则,混合运算时,运算顺序要遵循数学中“先乘除后加减”的原则。,(,2,)在,进行取模运算时,运算结果的正负取决于被模数(,%,左边的数)的符号,与模数(,%,右边的数)的符号无关。,如:(,-8,),%7=-1,,而,8%,(,-7,),=1,。,05 PHP,的运算符和表达式,(,2,)字符串运算符,字符串,运算符只有一个,即英文的句号“,.”,。它将两个或多个字符串连接起来,结合到一起形成一个新的字符串。而,PHP,中的“,+”,号只做赋值运算符使用,而不能做字符串运算符,。,示例:,05 PHP,的运算符和表达式,(,3,)赋值运算符,赋值,运算符是一个二元运算符,即它有两个操作数。总是把基本赋值运算符(,=,)右边的值赋给左边的变量或常量。,“,=”,表示赋值运算符,而非数学意义上的相等的关系。,05 PHP,的运算符和表达式,运算符,意义,范例,结果,=,赋值,$a=3;$b=2;,$a=3;$b=2;,+=,加等于,$a=3;$b=2;$a+=$b;,$a=5;$b=2;,-=,减等于,$a=3;$b=2;$a-=$b;,$a=1;$b=2;,*=,乘等于,$a=3;$b=2;$a*=$b;,$a=6;$b=2;,/=,除等于,$a=3;$b=2;$a/=$b;,$,a=1.5;$,b=2;,%=,模等于,$a=3;$b=2;$a%=$b;,$a=1;$b=2;,.=,连接等于,$a=abc;$a.=def;,$a=,abcdef,赋值运算符,及范例,05 PHP,的运算符和表达式,在,PHP,中一条赋值语句可对多个变量进行赋值,。,示例:,赋值,语句的执行顺序是从右到左,即先将,3,赋值给变量,$third,。,然后再把,$third,的值赋值给变量,$second,。,最后把变量,$second,的值赋值给变量,$first,,完成对三个变量的同时赋值,。,05 PHP,的运算符和表达式,$first;,$,second;,$,third;,$,first=$second=$third=3;/,为三个变量同时赋值,除,“,=”,外的其他运算符均为特殊赋值运算符,在使用过程中需要注意以下两点:,(,1,)“,+=”,、“,-=”,、“*,=”,、“,/=”,、“,%=”,的用法类似,这里以“,+=”,为例进行讲解。,示例,:相当于,“,+=”,表示变量,$a,先与,4,进行相加,运算,,,然后,再将运算结果赋值给变量,$,a,,,最后,变量,$a,的值为,9,。,$a=5;,$a+=4;,$a=5;,$a=$a+4;,05 PHP,的运算符和表达式,(,2,)“,.=”,表示对两个字符串进行连接操作。,示例,:相当于,“,.=”,表示变量,$str,先与“,itcast”,字符串进行,连接,,,然后,将连接后得到的新字符串再赋值给变量,$,str,,,最后,变量,$str,的值为“,welcome to itcast”,。,$str=welcome to;,$str.=itcast;,$str=welcome to;,$str=$str.itcast;,05 PHP,的运算符和表达式,(,4,)位运算符,符 号,作 用,实 例,&,按位与,$m&$n,|,按位或,$m|$n,按位异或,$m$n,按位取反,$m$n,向左移位,$m,向右移位,$m$n,05 PHP,的运算符和表达式,(,5,)递增或递减运算符,递增,或递减运算符有两种使用方法,一种是将运算符放在变量前面,即先将变量作加一或减一的运算后再将值赋给原变量,叫做前置递增或递减,运算符(,+$a,);,另一种是将运算符放在变量后面,即先返回变量的当前值,然后变量的当前值作加一或减一的运算,叫做后置递增或递减,运算符(,$a+,)。,05 PHP,的运算符和表达式,(,6,)比较运算符,比较,运算符用来对两个变量或表达式进行比较,其结果是一个布尔类型的,true,或,false,。,在,实际开发中还需要注意以下两点:,(,1,)对于,两个数据类型不相同的数据进行比较时,,PHP,会自动的将其转换成相同类型的数据后再进行比较,如:,3,与,3.14,进行比较时,首先会将,3,转换成浮点型,3.0,,然后再与,3.14,进行比较。,(,2,),运算符,“,=”,与“,!=”,在进行比较时,不仅要比较数值是否相等,还要比较其数据类型是否相等。而“,=”,和“,!=”,运算符在比较时,只比较其值是否相等,。,05 PHP,的运算符和表达式,运算符,运算,范例(,$x=5,),结果,=,等于,$x=4,false,!=,不等于,$x!=4,true,不等于,$x 4,true,=,恒等,$x=5,true,!=,不恒等,$x!=5,true,大于,$x 5,false,=,大于或等于,$x=5,true,小于,$x 5,false,=,小于或等于,$x=5,true,比较,运算符,及范例,05 PHP,的运算符和表达式,(,7,)逻辑运算符,逻辑运算符就是在程序开发中用于逻辑判断的符号,其返回值类型是布尔类型,。,运算符,运算,范例,结果,&,与,$a&$b,$a,和,$b,都为,true,,结果为,true,,否则为,false,|,或,$a|$b,$a,和,$b,中至少有一个为,true,,则结果为,true,,否则为,false,!,非,!$a,若,$a,为,false,,结果为,true,,否则相反,xor,异或,$a xor$b,$a,和,$b,一个为,true,,一个为,false,,结果为,true,,否则为,false,and,与,$a and$b,与,&,相同,但优先级较低,or,或,$a or$b,与,|,相同,但优先级较低,05 PHP,的运算符和表达式,(,8,)三元运算符(条件运算符),三,元运算符又称为三目运算符,它是一种特殊的运算符。,语法:,先求条件表达式的值,如果为真,则返回表达式,1,的执行结果。,如果条件表达式的值为假,则返回表达式,2,的执行结果,。,示例:,$a=100;,echo($a=true)?”,表达式正确,”:”,表达式不正确,”,;,?:,05 PHP,的运算符和表达式,运算符优先级:,结合方向,运算符,无,new,左,右,+-(int)(float)(string)(array)(object),无,instanceof,右,!,左,*/%,左,+-.,左,无,=!=!=,左,&,结合方向,运算符,左,左,|,左,&,左,|,左,?:,右,=+=-=*=/=.=%=&=|=,左,and,左,xor,左,or,左,05 PHP,的运算符和表达式,示例,:,05 PHP,的运算符和表达式,表达式:,将,运算符和操作数连接起来的式子称为表达式。表达式是构成,PHP,程序语言的基本元素,也是,PHP,最重要的组成元素。根据运算符的不同,表达式可以分为算术表达式、字符串表达式、关系表达式、赋值表达式以及逻辑表达式等。,05 PHP,的运算符和表达式,本章小结,本章,重点讲述,了,PHP,语言的一些基础知识,了解了变量的定义、使用方法和使用范围,详细介绍了变量的数据类型和类型转换,还学习了常量的定义及访问。本章还介绍了各种运算符,以及如何把一些常见的运算符组合到表达式中。,
展开阅读全文