《第3章PHP语言基础.ppt》由会员分享,可在线阅读,更多相关《第3章PHP语言基础.ppt(74页珍藏版)》请在三一办公上搜索。
1、第3章 php编程语法基础,本章目标,本章结束时,学员能够:PHP的标记风格PHP的注释种类PHP的数据类型PHP的常量和变量PHP运算符PHP表达式PHP函数PHP的编码规范,PHP的工作原理回顾,PHP的工作原理和ASP一样,服务器端脚本由服务解释执行。而对于前台技术,服务器不进行任何解释,而由客户端浏览器进行解释执行。,3.1 PHP标记风格,PHP一共提供了4种方式嵌入到文档中:1.默认方式(推荐使用):2.脚本风格 echo 你好;3.简短风格(需要修改配置文件php.ini中设置short_open_tag为ON后,重启服务器):4.ASP风格(需要修改配置文件php.ini中设置
2、asp_tags为ON,后重启服务器):,3.2 PHP的注释,C+风格单行注释/2.C风格多行注释/*/(不允许注释嵌套)3.Shell风格注释#注意:在注释中不要出现?;这样回事的解释器认为脚本未结束,3.3 PHP的数据类型,PHP一共支持8种原始类型,4种标量类型:boolean(布尔型)、integer(整型)、float/double(浮点型)、string(字符串型);2种复合类型:array(数组)和object(对象);2种特殊类型 resource(资源)和NULL,3.3.1 标量数据类型,标量数据类型是数据结构中最基本的单元,只能存储一个数据。表3.1 标量数据类型,3
3、.3.1.1 布尔型,布尔类型值为true或false:例1.结果:变量$boo值为true说明:美元符号$是变量的标识符,所有变量都是以$符开头的。,3.3.1.1 布尔型,例2.=3000)echo 发展不错!“;else echo 还需要努力!“;?,3.3.1.2 字符串(string),字符串是连续的字符序列。有3种定义字符串的方式,分别是单引号()、双引号()和定界符(;/单引号原样输出echo 输出字符串$a;?结果:输出字符串100 输出字符串$a,3.3.1.2字符串(string),例2.PHP5.0新型字符串的使用时本实例的关键。PHP5.0这种新型的字符串是以alert
4、(欢迎进入PHP编程世界!);mark;echo$str;?注意:结束标识符必须单独另起一行,并且不允许有空格。在结束表示符前后也不能出现任何其他字符。否则报错。,3.3.1.2字符串(string)-转义字符,例1.结果:帅哥,3.3.1.2字符串(string)-转义字符,(1)如果对非转义字符使用,那么斜杠也会被输出例2.结果:帅哥ac(2)双引号字符串和单引号异同相同点:包裹的内容均为字符串例3.;echo 帅哥你好!;?,3.3.1.2字符串(string)-转义字符,不同点:单引号原样输出,而双引号会将其中变量值输出例4.;echo 输出字符串$a;?结果:输出字符串100 输出字
5、符串$a,3.3.1.3 整型(integer),整型数据类型只能包含整数。在32位系统中,有效范围是-2147483648-+2147483647,整数可以使用十进制、八进制和十六进制来表示。八进制前加0,十六进制前加0 x例1.;echo 八进制输出结果是$a2;echo 十六进制输出结果是$a3;/最终都会以十进制输出结果?结果:十进制输出结果是16 八进制输出结果是14 十六进制输出结果是22,3.3.1.4 浮点型(float),浮点数数据类型用来存储数字,亦可以保存小数。精度比整数大得多。在32为系统中范围是1.7E-308-1.7E+308(注意:在4.0以前的版本中,浮点数的标
6、识符为double,也叫双精度浮点数,两者没有区别)浮点数默认书写格式:3.1415-35.8也可以使用科学计数法:3.23E1849.72E-3,3.3.1.4 浮点型(float),例1.;echo$a2.;?结果:0.0314 0.0314注意:浮点数值只一般是有精度的近似值,要尽量避免浮点型之间比较大小,主要是最后的位数往往不准确。,3.3.2 复合数据类型-数组和对象,1.数组:数组和变量的区别是变量通过不同的变量名来来区别不同的内存空间,而数组可以使用同一个数组名通过不同的下标来区分不同空间。例1.;echo$x.$y.$z.$a.;echo 数组各个元素的值:;/注意数组下标从0
7、开始echo$test0.$test1.$test2.$test3.;?,3.3.2 复合数据类型-数组,结果:各个变量的值:12153666数组各个元素的值:12153666,3.3.2 复合数据类型-数组,3.3.2 复合数据类型-数组,2.数组的创建方法(1)创建数组并赋值,数组大小由赋值个数决定$数组名=array(值1,值2,值3);(2)创建数组并赋值,下标可以使数字,也可以是任何标识符$数组名=array(元素下标=值,元素下标=值,元素下标=值,元素下标=值)例2.apple,color=round,shape=round,4=25);echo 输出数组内容:;echo$ana
8、me.;echo$acolor.;echo$ashape.;echo$a4;?,3.3.2 复合数据类型-数组,结果:输出数组内容:appleroundround25,3.3.2 复合数据类型-对象(object),对象:第13章详述,3.3.3 特殊数据类型,1.特殊数据类型包括资源和空值两种:(1)resource资源(2)null空值:表示没有值例1.字符串str1被赋值为null,str2没有声明和赋值,所以也是null,最后str3虽然被赋予了初值,但被unset()函数处理后,也变为null。unset()函数的作用就是从内存中删除变量。;if(is_null($str2)echo
9、 变量#str2的值为null.;unset($str3);/消毁变量$str3不返回任何值if(is_null($str3)/这里的$str3是重新生成的,没有赋值,所以是空值echo 变量#str3的值为null.;?,3.3.5 检测数据类型函数,检测数据类型,3.3.5 检测数据类型函数,例1.,3.3.4 数据类型转换,(1)自动转换:+加号两边一边是数字就强制把另一边的字符串自动转换为数字字符串的中左边第一个不是数字则转换为0 结果:5字符串的中左边第一个字符时数字则将字符串中相应的数字转换为数字 结果:15字符串中左边第一个字符是数字其中包含.看做是小数点浮点数 结果:10.9,
10、3.3.4 数据类型转换,(2)强制转换 转换为整型(在变量前加integer或者int)转换规则如下:1-1浮点数转化为整数。小数点后面的数将被省略。结果:231-2如果浮点数超出整数范围,结果可能是0或者是整型的最小负数。结果:-727379968 2-1布尔型转化为整数。true转化为1,false转化为0结果:1 3-1字符串转化为整型和自动转化相同,3.3.4 数据类型转换,(2)强制转换 转化为浮点型(方法是在变量前使用float)转化规则如下:整型转化为浮点型。其结果不会发生变化 2-1 布尔型转化为浮点型。和整数相同 3-1 字符串类型转化为浮点型。如果字符串中包含小数点.,或
11、科学计数法的e0或者E中的任何一个字符,字符串被当做浮点型处理。否则是为整型。结果:34432.34 转化成字符串型(方法在变量前使用string),转化规则如下:整型或浮点型转化为字符串。2-1 布尔值转化为字符串型。true转化为字符串1,false转化为空字符串 3-1 对象或数组型转化为字符串型。那么转化结果为字符串对象或者字符串数组。4-1 资源型转化为字符串型。转化结果为一个类似于Resource id#的字符串。在#之后是PHP在运行时分配给该资源的标识代号。,3.3.4 数据类型转换,(2)强制转换 转化为布尔型。(在方法前使用boolean或者bool)转化规则如下:转化结果
12、为false的情况 整型或者浮点数0 空字符串和字符串0 没有任何元素的空数组 没有任何元素的对象 特殊类型NULL 2-1 除了前面1-1中的情况都为true 转化为数组(方法在变量前使用array)转化规则是:将非数组型转化为与原变量数据类型相同的数组,数组中只有一个元素。转化为对象(方法在变量前使用object),转化规则是:将非对象类型转化为一个新对象,其中名为scalar的成员变量将包含原变量。,3.4.1 PHP 常量,常量:不会变化的变量(一旦常量定义之后,常量的值在定义之后就不允许修改了。一般是防止意外修改变量的值)定义方法使用define(变量名称,变量的值,表示是否区分大小
13、写默认是false,区分)结果:半径为10的圆的面积为314.15,3.4.2 PHP 预定义常量,预定义常量:系统默认已经定义好的常量。PHP的预定义常量,3.4.2 PHP 预定义常量,例1._FILE_获取目标文件的路径及文件名 结果:C:Apache2.2htdocsphp_studyindex.php说明:_FILE_为预定义常量,3.5.1 PHP 变量声明及使用,1.变量:变量是存取数据的内存空间。注意:PHP变量是弱类型,使用之前可以不声明,变量的类型由它存储的数据决定。,3.5.1 PHP 变量声明及使用,2.变量的命名规则:(除了第一个字母为$外)以字母开头或下划线开头,可
14、以包含字母数字下划线的命名。例如:正确的命名:错误的命名:,3.5.1 PHP 变量声明及使用,3.变量间赋值互相不干扰(变量值传递)结果是:90,3.5.1 PHP 变量声明及使用,4.变量的地址传递(存储的是地址);echo$i;echo;$j=shuaige;echo$i;echo;echo$j;?结果是:renmin renmin shuaige shuaige,3.5.2 变量的作用域,1.变量的作用域指的是:变量的作用范围。例如:班长的作用范围是全班,老师的作用范围是多个班级,校长的作用范围是全校。变量在作用域中存在,出了作用域就失去意义被销毁了。,3.5.2 变量的作用域,例1.
15、全局变量和局部变量;echo$x;?结果:局部变量,在函数内定义的变量,作用范围仅在函数中,函数调用完毕,立即销毁全局变量在函数外定义,函数外可见,在函数中不可见,3.5.2 变量的作用域,例2.静态变量;?结果:12345,3.5.2 变量的作用域,例3.全局变量 加上global关键字,函数里面和外面都可见;global$y;/如果加了global关键字,则全局变量在函数中可见 echo$y.;test();?结果:空行。函数内如果加了global能看到,3.5.3 可变变量,1.可变变量:可变变量是一种独特的变量,它允许动态的改变一个变量的名称。其工作原理是该变量的名称由另外一个变量的值
16、来确定。实现过程只不过是在一个普通变量前面,加上一个$符号。例1.;echo$x;?结果:y 199,3.5.4 PHP预定义变量,PHP给开发者提供了很多系统预定义的变量,方便用户获得用户会话、用户操作系统环境和本地操作系统环境等信息。(P58)例1结果:80,3.5.4 PHP预定义变量,例2.结果:127.0.0.1例3结果:GET,3.5.4 PHP预定义变量,例4结果:C:/Apache2.2/htdocs/php_study/index.php,3.5.4 PHP预定义变量,例5.获取表单数据test.php(将数据提交到chuli.php)用户名:密码:,3.5.4 PHP预定义
17、变量,密码是:.$_POSTpwd;?注意:由于表单使用的是POST方法提交数据,所以接收数据使用$_POST变量 POST-$_POST表单项名称 GET-$_GET表单项名称,3.6 PHP运算符,1.PHP运算符包括:字符串运算符、算术运算符、赋值运算符、递增递减运算符、位运算符、逻辑运算符、比较运算符、条件运算符,错误控制运算符。,3.6.1 PHP运算符-算数运算符,1.算术运算符主要用来处理四则运算。,3.6.1 PHP运算符-算数运算符,例1.结果:2.6666666666667,3.6.1 PHP运算符-算数运算符,例2.结果:2,3.6.1 PHP运算符-算数运算符,例3.结
18、果:-2,3.5.1 PHP运算符-算数运算符,例4.+$a加加在变量前,先自己给自己加1,然后做其他运算代码:;echo$a;/$a最终的值?结果:111 101,3.5.1 PHP运算符-算数运算符,例5.$a+加加在变量后,先做其他运算,然后$a自己给自己加1;echo$a;/$a最终的值?结果:110 101,3.6.1 PHP运算符-字符串运算符,1.字符串运算符:字符串运算符只有一个就是.注意:+只做算术运算符使用,不能用作字符串连接符使用例1.;echo 输出字符串$a;?结果:输出字符串100输出字符串$a注意:单引号和双引号的区别,3.6.3 PHP运算符-赋值运算符,3.6
19、.4 PHP运算符-位运算符,PHP位运算符,3.6.5 PHP运算符-逻辑运算符,PHP逻辑运算符,3.6.5 PHP运算符-逻辑运算符,例1.;if($i|$j and$z)/|优先级高于and echo true;else echo flase;?,3.6.6 PHP运算符-比较运算符,3.6.7 PHP运算符-错误控制运算符,1.错误控制运算符:可以屏蔽程序中的错误,使其不显示给用户,但是错误依然会发生。结果:报错。如果使用结果:什么错误都不显示,3.6.8 PHP运算符-三元运算符,条件?值1:值2如果条件为true,表达式结果为值1;否则为值2;例12?100:30;echo$x;
20、?结果:100,3.6.9 PHP运算符-运算符优先级,3.7 PHP 表达式,1.表达式:有运算符连接操作数组成的式子叫做表达式,无论多长的表达式,最终运算结果就是一个值。我们可以把整个表达式看成是一个值。,3.7 PHP 函数,1.为什么要使用函数?2.函数如何定义(创建)?3.函数如何调用(使用)?,3.8 PHP 函数,1.为什么要使用函数?答:使用函数主要的目的是代码重复使用,就像CSS文件一样的道理。相同功能的代码,将其写成函数,这样我们可以重复使用,修改维护方便。例如:初中学过的y=sin(x);sin是函数名x是形式参数(形式:因为x只是占个位置,可以使用任何变量代替)y是函数
21、返回值每给一个x值,就会有一个对应的y值,3.8 PHP 函数,2.函数如何定义(创建)?function 函数名称(形式参数,形式参数,)语句;语句;语句;,3.8 PHP 函数,例1.;$b=leijia(333,666);echo$b;?结果:5050 166833,3.8 PHP 函数-传递参数,1.值传递(传递值)在函数外:$m=$m;/输出实参的值$m/函数里的$m是局部变量,出了函数就销毁了/函数外的变量时全局变量,函数内无效/函数内外两个同名的$m没有关系?结果:在函数内:$m=15 在函数外:$m=1注意:函数中的$m是形参,可以是任何变量名,3.8 PHP 函数-传递参数,
22、2.引用传递(传地址)在函数外:$m=$m;/输出实参的值$m/函数里的$m是局部变量,出了函数就销毁了/函数外的变量时全局变量,函数内无效/函数内外两个同名的$m没有关系,但是传递时实参的地址传递给了形参,他们指向同一地址?结果:在函数内:$m=15在函数外:$m=15,3.8 PHP 函数-传递参数,3.默认参数(可选参数);values(100,0.25);values(100);?,3.8 PHP 函数-传递参数,4.取消引用(当不需要引用的,可以取消引用。取消引用的函数unset()函数,它只是断开了变量名和变量内容之间的绑定,而不是销毁变量内容。)例1.;echo$num is:.$num;?,3.8 PHP编码规范,P72,总结,本章主要介绍了PHP基本语法,包括数据类型、常量、变量、运算符、表达式和自定义函数,详细讲解了各种类型数据的转换、系统定义的常量、变量,优先级及函数的使用。同学们必须静下心来,牢牢掌握本章内容,为后面的学习打下良好的基础。所谓:基础不牢,地动山摇。,