




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
php网站开发基础应用技术学院任课教师:第2章PHP基础知识本节课学习要点 1.掌握PHP代码基本语法 2.掌握基本的编码规范 3.熟练PHP程序的组成、基本格式与输出语句32024年3月3日2024年3月3日32.1PHP语法基础2.1.1PHP标记风格Web服务器通过标记识别PHP代码的开始和结束,标记之间的所有文本都被解释为PHP语句,标记之外的文本被认为是HTML语句。标准的PHP标记风格如下:<?php
……?>42024年3月3日2024年3月3日42.1PHP语法基础2.1.2PHP程序注释PHP支持3种风格的程序注释(注释中不要出现PHP标记符号)。1、单行注释
以“//”开始的注释2、多行注释
包含在“/*”
和“*/”之间的注释3、shell风格的注释
以“#”开始的注释52024年3月3日2024年3月3日52.1PHP语法基础例2-13种注释<?php echo"单行注释"; //输出字符串
/*
注释内容
不被输出 */ echo"多行注释";
echo"shell风格注释"; #看不到注释?>62024年3月3日2024年3月3日62.2PHP数据类型PHP支持8种原始类型:4种标量类型:boolean(布尔型)、string(字符串)、integer(整型)、float/double(浮点型);2种复合类型:array(数组)、object(对象);2种特殊类型:resource(资源)、NULL(空)。72024年3月3日2024年3月3日72.2PHP数据类型2.2.1标量数据类型1、布尔型(boolean)布尔型是PHP中常用的数据类型,通常用于条件表达式或循环表达式中,其值为true或false。例2-2布尔型数据运行结果:变量$a的值为true<?php $a=true; if($a==true) echo'变量$a的值为true'; else echo'变量$a的值为false';?>82024年3月3日2024年3月3日82.2PHP数据类型2、字符串型(string)字符串由数字、字母和符号组成。字符串中的每一个字符占1个字节。字符串有3种定义形式:单引号(‘),双引号(“),界定符(<<<)。PHP中用“.”来连接字符串或字符串变量。92024年3月3日2024年3月3日92.2PHP数据类型区别:单引号包含的变量按普遍字符输出。双引号包含的变量按其实际值输出。例2-3单、双引号字符串对比输出运行结果:变量$s的值是:ABC123<?php $s="ABC123"; echo'变量$s的值是:'."$s";?>102024年3月3日2024年3月3日102.2PHP数据类型界定符字符串定义格式 $变量名=<<<开始界定符
单行或多行字符串结束界定符注意:结束界定符必须另起一行且在行首,前面不许有空格及其他字符。112024年3月3日2024年3月3日112.2PHP数据类型例2-4界定符字符串定义及输出<?php
$str=<<<JDF 'ok',"hello" <br> IwillJDF; echo"$str";?><?php $i='显示该行内容'; echo<<<std
这和双引号没有什么区别,\$i同样可以被输出。<p> \$i的内容为:$istd;?>运行结果:'ok',"hello"Iwill运行结果:这和双引号没有什么区别,$i同样可以被输出。$i的内容为:显示该行内容122024年3月3日2024年3月3日122.2PHP数据类型字符串中的字符也可以用数组索引的形式来表示。例2-5字符串中字符以数组元素形式输出运行结果:<?php $s="ABC123"; echo'变量$s[2]的值是:'."$s[2]";?>132024年3月3日2024年3月3日132.2PHP数据类型3、整型(integer)整型类型只包含整数。整数可以用十进制、八进制、十六进制表示,有效范围是:(-2147483648,+2147483647)。如果在八进制中出现非法数字(8和9),则非法数字及其后面的数字被忽略。142024年3月3日2024年3月3日142.2PHP数据类型例2-6整数不同进制形式输出<?php $str1=1234567890; $str2=01234567890; $str3=01234567; $str4=0x1234567890; echo'数字1234567890不同进制的输出结果:<p>'; echo'10进制的结果是:'.$str1.'<br>'; echo'8进制的结果是:'; if($str2==$str3){ echo'$str2=$str3='.$str2; }else{ echo'$str2='.$str2.'与$str3='.$str3.'结果不同'; } echo'<br>'; echo'16进制的结果是:'.$str4;?>运行结果:152024年3月3日2024年3月3日152.2PHP数据类型4、浮点型(float/double)浮点数据类型用来保存小数。PHP4以前版本中,浮点型的标示为double,PHP4以后改为float。doub与float没有区别。浮点型数据书写格式:标准格式:3.14,-0.257科学计数格式:314E-2,-2.57E1162024年3月3日2024年3月3日162.2PHP数据类型2.2.2复合数据类型1、数组(array)一组数据集合,形成一个可操作数据体。数组中每个数据称为一个元素,元素包含索引和值两个属性。元素索引:由数字或字符串组成元素值:可以是任意数据类型的数据2、对象(object)通过new运算得到一个类的对象。172024年3月3日2024年3月3日172.2PHP数据类型2.2.3特殊数据类型1、资源(resource)资源是一种特殊变量,又叫句柄,保存到外部资源的一个引用。例如:同时有多个数据库连接存在时,要进行查询和关闭连接等操作,必须指明某个操作是对应哪个连接的。因此给每个连接赋予一个标识值,一般是整数,这种标识值的数据类型称为资源型。182024年3月3日2024年3月3日182.2PHP数据类型2、空值(NULL)表示没有为变量设置任何值。NULL类型唯一的值就是“NULL”。在下列情况时一个变量的值是NULL:被赋值为NULL;
尚未被赋值;
被执行unset()方法。
192024年3月3日2024年3月3日192.2PHP数据类型2.2.4数据类型转换PHP在变量定义方面比较自由,因此PHP被称为弱类型语言,也称为动态语言。PHP数据类型转换有3种方式:1.自动转换(运算符);2.强制转换;3.setType()方法转换。202024年3月3日2024年3月3日202.2PHP数据类型1.自动转换定义变量时不需指定数据类型,PHP会根据具体引用变量的具体应用环境,将变量转换为合适的数据类型。例2-7自动转换<?php echo2+'10个人'; echo'<br>'; echo1+'经验';?>运行结果:212024年3月3日2024年3月3日212.2PHP数据类型2.强制转换将某个类型的数据强制转换为括号内指定类型的数据。转换目标类型转
换
规则转换示例(integer)将其他数据类型强制转换为整型$a="3";$b=(integer)$a;(boolean)将其他数据类型强制转换为布尔型$a="3";$b=(boolean)$a;(float),(double)将其他数据类型强制转换为浮点型$a="3";$b=(float)$a;$c=(double)$a;(string)将其他数据类型强制转换为字符串$a=3;$b=(string)$a;(array)将其他数据类型强制转换为数组$a="3";$b=(array)$a;(object)将其他数据类型强制转换为对象$a="3";$b=(object)$a;222024年3月3日2024年3月3日222.2PHP数据类型A.强制转换为整型的转换规则目
标
类
型原
类
型转
换
规
则转换示例整型布尔型TRUE转换为1$a=true;$b=(integer)$a;则$b的值为1FALSE转换为0$a=false;
$b=(integer)$a;则$b的值为0浮点型向下取整,只保留整数部分$a=125.65;
$b=(integer)$a;则$b的值为125字符串型字符串为纯整型数字转换成相应的整型数字$a="023";
$b=(integer)$a;则$b的值为23字符串为带小数点数字去除小数点后面部分,保留整数部分$a="12.4";
$b=(integer)$a;则$b的值为12字符串以整型数字开头去除整型数字后面部分,然后转换成相应的整型数字$a="19a这5";
$b=(integer)$a;则$b的值为19字符串以带小数点数字开头去除小数后面部分,然后转换成相应的整型数字$a="3.1a这1";
$b=(integer)$a;则$b的值为3字符串内容以非数字开头转换为0$a="字this";
$b=(integer)$a;则$b的值为0232024年3月3日2024年3月3日232.2PHP数据类型B.强制转换为浮点型的转换规则注:某些运算虽然结果看上去是整型,但实际是浮点型。目
标
类
型原
类
型转
换
规
则转换示例浮点型整型将整型数据直接转换为浮点型,数值保持不变$a=78;$b=(float)$a;则$b的值为78布尔型TRUE转换成1(浮点型)$a=true;$b=(float)$a;则$b的值为1FALSE转换成0(浮点型)$a=false;$b=(float)$a;则$b的值为0字符串字符串为整型数字转换成相应的浮点型数字$a="023";$b=(float)$a;则$b的值为23字符串以数字开头去除数字后面部分,然后转换成相应的浮点型数字$a="19a这5";$b=(float)$a;则$b的值为19字符串以带小数点数字开头只保留数字部分,然后转换成相应的浮点型数字$a="3.1a这1";$b=(float)$a;则$b的值为3.1字符串以非数字内容开头转换成0(浮点型)$a="字is5.0";$b=(float)$a;则$b的值为0242024年3月3日2024年3月3日242.2PHP数据类型C.强制转换为布尔型的转换规则目
标
类
型原
类
型转
换
规
则转换示例布尔型整型整型数字0
转换为FALSE$a=0;$b=(boolean)$a;则$b的值为false非零的其他整型数字转换为
TRUE$a=98;$b=(boolean)$a;则$b的值为true浮点型整型数字0转换为FALSE$a=0.0;$b=(boolean)$a;则$b的值为false非零的其他浮点型数字转换为
TRUE$a=5.5;$b=(boolean)$a;则$b的值为true字符串空字符串转换为FALSE$a="";$b=(boolean)$a;则$b的值为false字符串内容为零转换为FALSE$a="0";$b=(boolean)$a;则$b的值为false其他字符串转换为
TRUE$a="字is5.0";$b=(boolean)$a;则$b的值为trueNULL转换为FALSE$a=null;
$b=(boolean)$a;则$b的值为false数组空数组转换为FALSE$a=array();$b=(boolean)$a;则$b的值为false非空数组转换为
TRUE$a=array(1,2);$b=(boolean)$a;则$b的值为true252024年3月3日2024年3月3日252.2PHP数据类型D.强制转换为数组的转换规则目
标
类
型原
类
型转
换
规
则转换示例数组整型转换为数组时,数组只包含一个数据元素,就是未转换前的数据,并且数据类型与未转换前相同$a=-75;$b=(array)$a;则$b的值为-75$a=1.5e-1;
$b=(array)$a;则$b的值为0.15浮点型$a=true;
$b=(array)$a;则$b的值为true布尔型TRUE$a=false;$b=(array)$a;则$b的值为falseFALSE$a="转为数组";$b=(array)$a;则$b的值为"转为数组"字符串对象转换时将对象的成员变量的名称作为各数组元素的
key
。
如果成员变量为私有的(
private
),转换后
key
的名称为“类名
+
成员变量名”;
如果成员变量为公有的(
public
),转换后
key
的名称为成员变量名;
如果成员变量为受保护的(
protected
),转换后
key的名称为“
*+
成员变量名”classTest{
private$m;
public$n;
protected$p;
publicfunction__construct($m,$n,$p){
$this->m=$m;
$this->n=$n;
$this->p=$p;
}
}
$a=newTest(15,"test",0.19);$b=(array)$a;则$b["\0Test\0m"]=15;$b[n]="test";$b["\0*\0p"]=0.19;NULL直接转换为一个空数组$a=null;$b=(array)$a;则$b的值为NULL262024年3月3日2024年3月3日262.2PHP数据类型E.强制转换为对象的转换规则目
标
类
型原
类
型转
换
规
则转换示例对象整型将其他类型变量转换为对象时,将会新建一个名为“
scalar
”的属性,并将原变量的值存储在这个属性中$a=-75;
$b=(object)$a;则$b->scalar的值为-75浮点型$a=1.5e-1;
$b=(object)$a;则$b->scalar的值为0.15布尔型TRUE$a=true;
$b=(object)$a;则$b->scalar的值为trueFALSE$a=false;
$b=(object)$a;则$b->scalar的值为false字符串$a="转为对象";
$b=(object)$a;则$b->scalar的值为"转为对象"数组将数组转换为对象时,数组的
key
作为对象成员变量的名称;对应各个
key
的
value
作为对象成员变量保存的值$a=array('first'=>"数组1",'second'=>"数组2");$b=(object)$a;则$b->first的值为"数组1",$b->second的值为"数组2",NULL直接转换为一个空对象$a=null;
$b=(object)$a;则$b为空对象272024年3月3日2024年3月3日272.2PHP数据类型F.强制转换为字符串型的转换规则目
标
类
型原
类
型转
换
规
则转换示例字符串整型转换时直接在整型数据两边加上双引号作为转换后的结果$a=-75;
$b=(string)$a;则$b的值为"-75"浮点型转换时直接在浮点型数据两边加上双引号作为转换后的结果$a=1.5e-1;
$b=(string)$a;则$b的值为"0.15"布尔型TRUETRUE
转换为字符串“
1
”
$a=true;
$b=(string)$a;则$b的值为"1"FALSEFALSE
转换为字符串“
0
”$a=false;$b=(string)$a;则$b的值为"0"数组直接转换为字符串“
Array
”$a=array('first'=>"数组1",'second'=>"数组2");$b=(string)$a;则$b的值为"Array"NULL直接转换为空字符串$a=null;$b=(string)$a;则$b的值为""282024年3月3日2024年3月3日282.2PHP数据类型3.setType()方法转换setType()方法将指定的变量转换成指定的数据类型。语法:setType(要转换的变量名,目标数据类型)292024年3月3日2024年3月3日292.2PHP数据类型例2-8setType()方法转换<?php$num='3.141592r*r';echo'使用(integer)操作符强制转换变量$num的数据类型,(integer)$num的值是:';echo(integer)$num;echo'<p>';echo'强制转换后变量$num的值是:'.$num;echo'<p>';echo'使用setType()方法转换变量$num的数据类型,settype($num,'.'integer'.')的值是:';echosettype($num,'integer');echo'<p>';echo'setType()方法转换后变量$num的值'.$num;?>运行结果:302024年3月3日2024年3月3日302.3PHP常量及其应用2.3.1常量声明常量名由字母、数字、下划线组成,首字符不能是数字。常量声明语法:define(常量名,常量值,大小写敏感参数)说明:
声明时,常量名和常量值必须给出大小写敏感参数的值为逻辑值,默认为false,表示大小写敏感;若值为true,则表示大小写不敏感。312024年3月3日2024年3月3日312.2PHP数据类型例2-9常量声明的大小写敏感参数<?phpdefine("Mage1","abc",true);echo'<p>';echomage1;define("Mage2","abc");echo'<p>';echomage2;?>运行结果:322024年3月3日2024年3月3日322.3PHP常量及其应用2.3.2使用常量常量可赋给某个变量,通过变量来使用常量;也可以直接通过常量名使用该常量。通过变量获取常量值语法$变量名=‘常量名’constant($变量名)332024年3月3日2024年3月3日332.2PHP数据类型例2-10获取常量值<?phpdefine("CCUT","长春工业大学");echo'通过常量名获得的常量CCUT的值是:'.CCUT;echo'<p>';$name='CCUT';echo'通过变量获得的常量CCUT的值是:'.constant($name);?>运行结果:342024年3月3日2024年3月3日342.3PHP常量及其应用2.3.3系统预定义常量PHP可通过系统预先定义的常量获取相关信息(系统常量见教材P20)。例2-11系统常量<?phpecho"当前文件路径是:".__FILE__;echo"<br>当前行数是:".__LINE__;echo"<br>当前PHP版本信息是:".PHP_VERSION;echo"<br>当前操作系统核心版本是:".PHP_OS;?>运行结果:352024年3月3日2024年3月3日352.4PHP变量及其应用2.4.1变量名称
变量名称遵循以下规定:(1)变量名必须以美元符号$开始;(2)变量名开头可以以下划线开始;(3)变量名不能以数字字符开头;(4)PHP的变量名区分大小写;362024年3月3日2024年3月3日362.4PHP变量及其应用2.4.2变量赋值1、直接赋值PHP中定义变量时不需要指定变量的类型,系统会根据变量的值决定其类型。
通过赋值运算符为变量直接赋值。
如果定义变量时没有为变量赋初值,那么在使用变量时,系统会根据变量在语句中所处的位置确定其类型,并为该变量赋一个与其类型匹配的默认值。字符串类型的初值为空值,整型类型的初值为0;布尔型的初值为false。372024年3月3日2024年3月3日372.3PHP常量及其应用例2-12变量默认初始值示例<?php$num1+=1;echo'$num1的初始默认值是'.($num1-1);if($boo2){ echo'<br>$boo2的默认初始值是true';}else{ echo'<br>$boo2的默认初始值是false';}?>运行结果:382024年3月3日2024年3月3日382.4PHP变量及其应用2、变量间赋值
当变量1定义并赋值后,将变量1赋给变量2称为变量间赋值。赋值后,两个变量使用各自的内存,互不干扰。语法格式: $变量2=$变量1392024年3月3日2024年3月3日392.4PHP变量及其应用例2-13变量间赋值示例<?php$str1="应用技术学院";$str2=$str1;$str1="长春工业大学";echo$str1;echo"<br>";echo$str2;?>运行结果:402024年3月3日2024年3月3日402.4PHP变量及其应用3、引用赋值
引用赋值是指通过“&”符号实现不同变量名访问同一个变量空间。改变一个变量的值,另一个变量值也改变。语法格式: $变量2=&$变量1412024年3月3日2024年3月3日412.4PHP变量及其应用例2-14引用赋值示例<?php$str1='应用技术学院';$str2=&$str1;echo'改变前的$str1的值是:'."$str1";echo'<br>改变前的$str1的值是:'."$str2";$str1='长春工业大学';echo'<br>改变后的$str1的值是:'."$str1";echo'<br>改变后的$str1的值是:'."$str2";?>运行结果:422024年3月3日2024年3月3日422.4PHP变量及其应用2.4.3可变变量一个变量的值作为另一个变量的名称,这种形式称为可变变量。可变变量通过在一个变量名前使用两个“$”符号实现语法格式: $变量2=$$变量1432024年3月3日2024年3月3日432.4PHP变量及其应用例2-15可变变量赋值示例<?php$str1='Welcome';$Welcome='toChina!';echo$str1;echo$$str1;?>运行结果:442024年3月3日2024年3月3日442.5PHP运算符运算符php运算符包括算术运算符、比较运算符、条件运算符、字符串运算符、赋值运算符、位运算符、递增运算符或递减运算符等。452024年3月3日2024年3月3日452.5PHP运算符2.5.1算术运算符1、除(/):多数情况下结果为浮点数。特例:当两个操作数都是整数(或字符串转换成的整数)并且正好能整除时,得到的结果是整数。2、取模(%):当被除数是负数时,得到的结果是负数。462024年3月3日2024年3月3日462.5PHP运算符2.5.1算术运算符操作符说明示例+加法运算$a=-30;$b=25;则$c=$a+$b的值为-5-减法运算$a=15;
$b=-5;则$c=$a-$b的值为20*乘法运算$a=2;
$b=6;
则$c=$a*$b的值为12/除法运算$a=10;
$b=2;
则$c=$a/$b的值为5$a=10;
$b=-2;则$c=$a/$b的值为-5$a=-10;$b=2;
则$c=$a/$b的值为-5%取模运算$a=21;
$b=4;
则$c=$a%$b的值为1$a=-21;$b=4;
则$c=$a%$b的值为-1$a=21;
$b=-4;
则$c=$a%$b的值为1472024年3月3日2024年3月3日472.5PHP运算符2.5.2比较运算符1、==和!=只考虑数值是否相同,不考虑数据类型2、===和!==既考虑数值是否相同,也考虑数据类型是否相同操作符说明示例<大于$a="abc";$b=5;
则$c=$a<$b的值为true>小于$a=15;
$b=20;
则$c=$a>$b的值为false<=小于等于$a=2;$b=6;
则$c=$a<=$b的值为true>=大于等于$a=10;
$b=2;
则$c=$a>=$b的值为true==等于$a=4.0;
$b=4;
则$c=$a==$b的值为true!=不等于$a=0;
$b="abc";则$c=$a!=$b的值为false===恒等于$a=4.0;
$b=4;
则$c=$a===$b的值为false!==不恒等于$a=0;$b="abc";则$c=$a!==$b的值为true482024年3月3日2024年3月3日482.5PHP运算符2.5.3条件运算符条件运算符不用于两个语句或程序的选择,一般用于根据一个表达式在另外两个表达式中选一个。通常将条件表达式放在括号内。语法
表达式1?表达式2:表达式3规则
当表达式1为真时,执行表达式2,否则执行表达式3492024年3月3日2024年3月3日492.5PHP运算符2.5.4字符串运算符PHP程序中的字符串运算符是“.”,起作用是将前后两个字符串连接为一个新字符串。注意:“+”在PHP中并不是字符串连接运算符502024年3月3日2024年3月3日502.5PHP运算符2.5.5赋值运算符操作符说明示例=将右边表达式的值赋给左边表达式$a=3;$b=$a;则$b的值为3+=将左边变量的值加上右边表达式的值后再赋给左边变量$a=3;$b=1;$b+=$a;则$b的值为4-=将左边变量的值减去右边表达式的值后再赋给左边变量$a=3;$b=1;$b-=$a;则$b的值为-2*=将左边变量的值乘以右边表达式的值后再赋给左边变量$a=3;$b=1;$b*=$a;则$b的值为3/=将左边变量的值除以右边表达式的值后再赋给左边变量$a=3;$b=1;$b/=$a;则$b的值为0.33333333.=将右边表达式的值附加在左边变量值后面构成新字符串后再赋给左边变量$a="newstring!";$b=1;$b.=$a;则$b的值为1newstring!%=将左边变量的值除以右边表达式的值取余数,把余数赋给左边变量$a=3;$b=1;$b%=$a;则$b的值为1512024年3月3日2024年3月3日512.5PHP运算符2.5.6自增、自减运算符操作符位置说明示例++位于变量前面变量值先加1,然后用该变量的新值参与计算$a=3;$b=1;$c=(++$a)+$b;则$c的值为5;$a的值为4++位于变量后面用变量原值参与计算,然后该变量值加1$a=3;$b=1;$c=($a++)+$b;则$c的值为4;$a的值为4--位于变量前面变量值先减1,然后用该变量的新值参与计算$a=3;$b=1;$c=(--$a)+$b;则$c的值为3;$a的值为2--位于变量后面用变量原值参与计算,然后该变量值减1$a=3;$b=1;$c=($a--)+$b;则$c的值为4;$a的值为2522024年3月3日2024年3月3日522.5PHP运算符2.5.7位运算符操作符说明规则示例&按位与两个操作数对应位都是1的位设为1,其余为0$a=1;$b=2;$c=$a&$b;则$c的值为0|按位或两个操作数对应位有一个为1的位设为1,其余为0$a=1;$b=2;$c=$a|$b;则$c的值为3^按位异或两个操作数相同为0,不同为0$a=3;$b=2;$c=$a^$b;则$c的值为1~按位取反将操作数中为0的位设为1,为1的位设为0$a=4;$b=2;$c=~$a;则$c的值为-5<<左移将左边操作数中的位向左移动右边操作数次(每一次移动都表示“乘以2”)$a=5;$b=2;$c=$a<<$b;则$c的值为20>>右移将左边操作数中的位向右移动右边操作数次(每一次移动都表示“除以2”)$a=6;$b=2;$c=$a>>$b;则$c的值为1532024年3月3日2024年3月3日532.5PHP运算符2.5.8逻辑运算符操作符说明示例&&逻辑与
只有当两个操作数都为真时,结果为真$a=true;$b=true;则$c=$a&&$b的值为true$a=true;$b=false;则$c=$a&&$b的值为falseand$a=true;$b=false;
则$c=($aand$b)的值为false$a=false;$b=false;
则$c=$aand$b的值为false||逻辑或
只要两个操作数有一个为真,结果为真$a=false;$b=false;
则$c=$a||$b的值为false$a=true;$b=false;
则$c=$a||$b的值为trueor$a=true;$b=true;
则$c=$aor$b的值为true$a=true;$b=false;
则$c=$aor$b的值为truexor逻辑异或
当两个操作数的值一真一假时,结果为真$a=true;$b=true;
则$c=($axor$b)的值为false$a=true;$b=false;
则$c=$axor$b的值为true!逻辑非
结果为操作数的逻辑反值$a=true;
则$c=!$a的值为false$a=false;
则$c=!$a的值为true542024年3月3日2024年3月3日542.3PHP常量及其应用例2-12_1逻辑运算符优先级<?php$a1=true;$b1=false;$c1=$a1and$b1;echo'<br>$c1的值是'; var_dump($c1);?>运行结果:$c1的值是true原因:1、“=”的优先级高于“and”,因此先把$a1的值赋给$c1,此时$c1的值是true;然后再用$c1和$b1做“and”
运算。2、先计算$a2and$b2,值为false,然后把该值赋给$c2;因此$c2的值是false<?php$a2=true;$b2=false;$c2=($a2and$b2);echo‘<br>$c2的值是'; var_dump($c2);?>运行结果:$c2的值是false552024年3月3日2024年3月3日552.3PHP常量及其应用例2-12_2逻辑运算符优先级<?php$a1=true;$b1=true;$c1=$a1xor$b1;echo'<br>$c1的值是'; var_dump($c1);//输出带有数据类型的变量值?>运行结果:原因:1、“=”的优先级高于“xor”,因此先把$a1的值赋给$c1,此时$c1的值是true;然后再用$c1和$b1做“xor”
运算。2、先计算$a2xor$b2,值为false,然后把该值赋给$c2;因此$c2的值是false<?php$a2=true;$b2=true;$c2=($a2xor$b2);echo‘<br>$c2的值是'; var_dump($c2);?>运行结果:562024年3月3日2024年3月3日562.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
如果某个条件成立,就做某件事情。<?php $a="梅格妮"; if($a=="梅格妮")echo"<br>我是吴亦凡的粉丝!"; $a="芦苇"; if($a=="芦苇") { echo"<br>我是鹿晗的粉丝!"; } if($a=="梅格妮")echo"<br>我是吴亦凡的粉丝!";echo"<br>我不是鹿晗的粉丝!"; if($a=="芦苇") { echo"<br>我不是吴亦凡的粉丝!"; echo"<br>我是鹿晗的粉丝!"; }?>2.3语句结构——顺序结构、分支结构2、if...else语句if(expr) {statement1;}else {statement2;}2.3语句结构——顺序结构、分支结构举例: $a="梅格妮"; if($a=="梅格妮") { echo"我是吴亦凡的粉丝!"; } else { echo"我不是吴亦凡的粉丝!"; }2.3语句结构——顺序结构、分支结构3、if...elseif....else语句if(expr1) {statement1;}elseif(expr2) {statement2;}elseif(expr3) {statement3;}......else {statementn;}2.3语句结构——顺序结构、分支结构例如:$score=85;if($score>=90&&$score<=100)echo"你的成绩为优秀!";elseif($score>=80&&$score<90)echo"你的成绩为良好!";elseif($score>=70&&$score<80)echo"你的成绩为中等!";elseif($score>=60&&$score<70)echo"你的成绩为及格!";elseif($score>=0&&$score<60)echo"你的成绩为不及格!";elseecho"你输入的成绩有误!!!";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数字<?php$i=1;while($i<=5){echo"Thenumberis".$i."<br/>";$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<=100;$a+=2) $sum=$sum+$a; echo"结果为:".$sum;2.4语句结构——循环结构
4.foreach循环语句
foreach循环控制语句自php4开始被引入,主要用于处理数组,是遍历数组的一种简单方法。如果将该语句用于处理其他的数据类型或者初始化的变量,将会产生错误。该语句的语法有两种格式:foreach(array
as$value
){
循环语句;}
或者foreach(arrayas$key
=>$value){
循环语句;}2.4语句结构——循环结构
4.foreach循环语句
例:遍历数组$arr=array("one","two","three"); foreach($arras$value) { echo"Value:".$value."<br/>"; }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语句结构——跳转语句<html><body><tablewidth="50%"border="1"> <?php for($a=1;$a<=10;$a++) { echo"<tr>" ; for($b=1;$b<=10;$b++) { echo"<td>$a*$b=".$a*$b."</td>"; } echo"</tr>"; } ?></table></body></html>2.5语句结构——跳转语句for($a=1;$a<=10;$a++) { echo"<tr>" ; for($b=1;$b<=10;$b++) { if($b==5)break; echo"<td>$a*$b=".$a*$b."</td>“; } echo"</tr>“;for($a=1;$a<=10;$a++) { echo"<tr>" ; for($b=1;$b<=10;$b++) { if($b==5)continue; echo“<td>$a*$b=”.$a*$b.“</td>“; } echo"</tr>";}
1.思考如何做一个某年的日历。(需要用到循环的知识)2.6思考题1.求1-100的奇数和2.用循环输出3.输出50以内能被3整除的数4.求半径从1-10的圆的面积,并且将大于100的面积输出2.6思考题程序在开发的过程中,常常需要重复进行某种操作或者处理,如果每次执行相同的操作都要重新写一遍相同的代码,那样会造成系统资源极大的浪费。而且可维护性会很差,比如说一个操作需要改进,程序中有多处使用相同的代码,那么改动一个小小的地方,都要浪费很大的力气,写很多重复的代码也会降低开发的效率。函数就是为了解决这些问题而设计的。PHP中函数分为系统函数和用户自定义函数两类。PHP拥有多达162个系统函数库,包含着数量超过1000的系统函数。PHP也可以根据需要自定义函数。2.7函数1.函数的定义和调用函数是一种可以在任何被需要的时候执行的代码块。格式:function
fun_name
($str1,$str2.....$strn
){ fun_body;
}function是声明自定义函数时必须用到的关键字。fun_name自定义函数的名字。函数名要符合php的命名规范。$str1函数的参数。参数可以是一个,也可以是多个,也可以没有。但是小括号不能省略。fun_body是自定义函数的主体,是功能实现部分。2.7函数1.函数的定义和调用<?phpfunctionwriteMyIdol(){echo"我的偶像是陈伟霆<br>";}writeMyIdol();writeMyIdol();writeMyIdol();echo"重要的事情说三遍";?> 2.7函数2.函数的参数定义时的参数称为形式参数,简称形参;
调用时的参数称为实际参数,简称实参例:functionhello($str)//形式参数
{echo"hello$str";}hello("EXO");//实际参数2.7函数2.函数的参数默认参数就是函数的参数列表中的若干参数指定了值,如果调用函数时不传入对应的值则函数会接受默认参数的值,这样可以避免调用时出现没有参数的错误。也可以使一些程序显得更加合理。如果传入对应的参数,就会替换默认参数。例:functiontvplay($str='后宫甄嬛传'){ echo"<br>我喜欢看:".$str;}tvplay();tvplay("伪装者");
2.7函数2.函数的参数默认参数例:functiontvplay($t1,$t2='好先生',$t3='十宗罪'){ echo'<br>我喜欢的电视剧是:'.$t1;echo'<br>你喜欢的电视剧是:'.$t2;echo'<br>他喜欢的电视剧是:'.$t3;}tvplay('琅玡榜');2.7函数3.函数参数的传递可以通过参数向函数传递信息。参数类似变量。参数被定义在函数名之后,括号内部。可以添加任意多参数,只要用逗号隔开即可。参数传递的方式有3种:按值传递按引用传递默认参数2.7函数3.函数参数的传递(1)值传递实参值赋给形参,函数调用后实参值不变。例:functionexample($m){ $m=$m*$m+10; echo'<br>在函数内,$m的值是:'.$m;}$m=3;example($m);echo'<br>在函数外,$m的值是:'.$m;2.7函数3.函数参数的传递(2)引用传递
按引用传递就是将实参的内存地址传递到形参中。这时,在函数内部的所有操作都会影响到实参的值,返回后实参的值会发生相应的变化。引用传递方式就是在传值时在原基础上加&符号即可。例:functionexample(&$m){ $m=$m*$m+10; echo'<br>在函数内,$m的值是:'.$m;}
$m=3;example($m);echo'<br>在函数外,$m的值是:'.$m;2.7函数3.函数参数的传递(3)默认参数(可选参数)
还有一种设置参数的方式,默认参数即可选参数。可以指定某个参数为可选参数,将可选参数放在参数列表的末尾,并且指定其默认值为空。例:已知原价,计算出售价格。functionvalues($price,$tax=‘'){ $price=$price+$price*$tax; echo"<br>出售价格:".$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;//在函数内容部调用全局变量$var}test();//无效调用$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("&",$fruit_arr);echo"fruit_str=".$fruit_str;3.Intstrcmp(string$strl,string$str2)例:$str1="abcd";$str2="ABCD";$str3="abcd";echo"str1和str2比较结果是:".strcmp($str1,$str2)."<br>";//1:正数为str1大于str2echo"str1和str3比较结果是:".strcmp($str1,$str3)."<br>";//0为str1与str3相等echo"str2和str1比较结果是:".strcmp($str2,$str1)."<br>";//-1:负数为str2大于str12.8内置函数4.mixedstr_replace(mixed$search,mixed$repalce,mixed$subject[,&$count])//字符串替换例:$str1="Ilikeplayfootball,andheisalsolikeplayfootball";$str2="backetball";echo"替换前:".$str1."<br>";$str=str_replace("footbal",$str2,$str1,$count);echo"替换后:".$str."<br>";echo"字符串football被替换的次数为:".$count."<br>";2.8内置函数5.stringsubstr(string$str,int$start[,int$length])//字符串截取例:$str="Thisisastring";$str1=substr($str,0,4);//从第一个字符开始,截取4个字符echo"str1为:".$str1."<br>";$str2=substr($str,0);//从第一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国出租屋申报系统市场调查研究报告
- 2025年中国全自动立式包装机市场调查研究报告
- 2025年中国丙二醇醚催化剂市场调查研究报告
- 2025年中国PBT专用色母料市场调查研究报告
- 2025年中国2-巯基苯丙噻唑市场调查研究报告
- 2025年原乙酸三甲酯项目建议书
- 2025监理工程师建设工程合同管理摸底卷
- 车载软件在新能源汽车中的应用试题及答案
- 《骨肉瘤危险》课件
- 2025年混悬剂合作协议书
- 初中体育课堂安全教育
- 码头安全生产知识
- 《年产100公斤阿司匹林生产工艺设计》8700字(论文)
- 全屋整装培训
- 《风电安全生产培训》课件
- 常见病用药指导技术知到智慧树章节测试课后答案2024年秋天津生物工程职业技术学院
- 2025年日历(日程安排-可直接打印)
- 保密法律法规
- 铸牢中华民族共同体意识-形考任务1-国开(NMG)-参考资料
- 踝关节骨折的分型与治疗
- 2024-2025学年广东省深圳市高三下学期质量调研(二模)生物试题试卷含解析
评论
0/150
提交评论