PHP教学教案二.docx
《PHP教学教案二.docx》由会员分享,可在线阅读,更多相关《PHP教学教案二.docx(16页珍藏版)》请在冰豆网上搜索。
PHP教学教案二
PHP教学教案(第二天)
上午
第四章(PHP语言基础)
●PHP的运算符
●PHP的表达式
●自定义函数
●在函数间传递参数
PHP的运算符
运算符是对变量、常量或数据进行计算的符号。
PHP变量包括:
算术、逻辑、比较、字符串、递增、递减、位运算、执行、错误控制这一系列运算符。
算术运算符:
+
加
计算两个整数的和或连接两个字符串
-
减
计算两个整数的差值
*
乘
计算两个整数的乘积
/
除
计算两个整数的商
%(MOD)
取模
计算两个整数相除的余数
演示实例:
php
$Num1=9;
$Num2=3;
$Result=$Num1+$Num2;//加
$Result=$Num1-$Num2;//减
$Result=$Num1*$Num2;//乘
$Result=$Num1/$Num2;//除
$Result=$Num1%$Num2;//取模
?
>
注意:
●/为精除,即带小数的除法。
●%如果被除数或除数是负数。
则结果也是负数。
●不要采用浮点数求余。
示例:
书上P98页
字符串运算符:
字符串运算符只有一个,即英文句号“.”
php
$World="World";
echo"Hello".$World;
?
>
注意:
●“+”在PHP里只做算术计算。
不能连接字符串。
●如果AppServ支持逗号“,”也可以完成连接操作。
示例:
php_plus.php
再示例:
书上P99
赋值运算符:
“=”把右边的数赋值给左边的变量。
除了简单的“=”之外。
还有一些操作符和赋值号一起使用的。
如+=、.=参考书上P100
php
$Myvar="Add";
$Myvar.="Something";
echo$Myvar;
echo"
";
$Myint=1;
$Myint+=1;
echo$Myint;
?
>
再示例:
php_pointDeng.php
位运算符:
二进制数从低位到高位的排列计算
&与、|或、^异或。
示例:
php_wei.php
递增或递减运算符:
递增运算符:
++
递减运算符:
--
此类操作符也称之为一目(元)运算符,表示操作数只有一个,可以写在操作数之前也可以写在操作数之后,但自增减和参加运算的时间点不一样。
如果没有参加任何计算。
只做累加处理,这时就不用考虑递增减的先后顺序了
示例:
P102
逻辑运算符:
在PHP中逻辑运算符有如下:
&&或and
两边结果为真则真
||或or
两边结果有真则真
xor(异或)
两边结果不同为真
!
(逻辑非)
真为假,假为真
注意:
在php中逻辑与和逻辑或有4种运算符。
其中属于同一个逻辑结构的两个运算符之间有着不同的优先级。
(or和and)高于(||和&&)
建议尽量不要混合使用,以避免错误
比较运算符:
==
等于(值相等)
!
=
不等于
>
大于
<
小于
>=
大于等于
<=
小于等于
===
等价于(值相等,数据类型也相等)
注意:
等于与等价于的区别。
示例:
php_comp.php。
再示例:
P106
三元运算符:
(expr1)?
(expr2):
(expr3)
如果表达式1返回结果为真则计算表达式2,否则计算表达式3。
如:
php
$Num1=13;
$Num2=12;
echo“1=”.$Num1==$Num2.”
”;//不返回任何东西,表示假
$Num1=12.0;
$Num2=12;
echo“2=”.$Num1==$Num2.“
”;
echo“3=”.$Num1===$Num3.“
”;//不相同的数据类型
?
>
@错误屏蔽
@错误屏蔽运算符可以对程序中出现的错误的表达式进行操作。
进而对错误进行隐藏。
但错误依然存在。
方式就是在错误的表达式前加“@”符号。
如:
$err=5/0;//执行后会报错
$err=@(5/0);//执行后不会报错
运算符的优先级
查看书P109页表格。
小括号可以改变优先级的顺序
PHP的表达式
PHP表达式是通过具体代码来实现的。
使用分号来结束表达式。
称为一条PHP语句。
自定义函数
把使用频率平凡的代码组织起来作为一个整体的调用我们把这样的代码组织叫做函数。
定义和调用函数
functionfun_name($args1…){
//code
//return
}
示例:
php_fun1.php
思考:
5的阶乘用函数
在函数间传递参数
在PHP中函数的参数传递有三种方式:
●按值传递
●按引用传递
●默认值传递
按值传递参数
在传参数给函数时,传的是原值的副本。
而在函数中对传入值的改动不影响原值的这种传值方式称为按值传递。
示例:
php_fun2.php
一般传递的为简单普通变量如:
int,float等
按引用传递
在传入函数内部的是原值的地址。
而函数是原值的引用。
所以改变的自然是原值了。
也就是说如果函数内部改变,函数外也随之改变。
示例:
php_fun3.php
传递默认的参数值
函数需要一个参数,而调用时又没有提供。
则采用默认值参数,语法:
functionfun_name($args=value){
…
}
示例:
php_fun4.php
注意:
●如果函数有两个后两个以上参数时,需要把带默认值的参数写在没有带默认值的参数的后面
●php在参数上允许有默认值。
则php没有函数重载
函数的返回值
return语句
php
functionsum($num1,$num2){
$result=$num1+$num2;
return$result;
}
echosum(233,19).“\n”;
?
>
list语句
从函数中返回多个值(数组)的时候可以采用list。
示例:
php_list.php
第五章(流程控制)
熟悉PHP的算法和控制结构,逐步培养统筹全局的编程思想
●条件控制
●循环控制
●跳转语句
●流程控制语句的嵌套
条件控制
条件语句
●if…else...
●if…elseif…else…
●switch…case
示例:
php_if_switch.php
循环语句
在PHP中条件循环语句有:
●for
●while
●while…endwhile
●do…while
●foreach
举例
for—知道具体循环次数的循环体
for($Myval=1;$Myval<=10;$Myval++){
statement;
}
思考:
如果写成for(,,)那如果循环5次并且输出变量内容该怎么写
while—指定循环结束条件
1)只要表达式的值为真就执行循环体,知道表达式的值为假。
2)while最少执行为0次
$Num=5;
while($Num<10){
statement;
$Num++;
}
while…endwhile
与while相似,只是不采用大括号。
而使用分解符(endwhile)
$Num=1;
while($Num<=10):
echo$Num;
$Num++;
endwhile;
注意:
需要在while条件后使用冒号:
结束时加分号;表示语句的结束
do…while
与while相似,但在do…while语句会在判断条件之前先执行一次循环体。
即最少执行一次。
判断条件还是一样。
如果条件为真则继续执行循环体。
直至条件为假
$Num=1;
do{
echo$Num;
++$Num;
}while($Num<20);
foreach
循环遍历一个数组或对象中的每个都要执行的代码。
在数组的所有元素已计算完毕之后,控制才离开循环。
php
$arrayval=array(12,22,32,72);
foreach($arrayvalas$currval){
echo$currval."
";
}?
>
数组以键值方式存储的循环输出方式
php
$arrayval=array(
"Sunday"=>1,
"Monday"=>2,
"Tursday"=>3
);
foreach($arrayvalas$tempval=>$currval){
echo$arrayval."[".$tempval."]".$currval."
";
}
?
>
嵌套控制循环
for(…){
for(…)
}
break和continue语句
break:
结束当前循环的执行,并把控制返回给紧跟在该循环后面的下一个语句。
Continue:
跳过在循环体本次循环的下面语句,从下一次循环继续开始
示例汇总:
php_for_while.php
下午
数组
数组是一组数据的集合。
数组中的每个数据称为一个元素。
在php中元素可以是多种数据类型。
在PHP中数组可以分为三类:
●枚举数组
●关联数组
●多维数组
枚举数组:
下标为整数的数组称为枚举数组或数字索引数组,每个独立的元素都可以通过索引号来引用。
如:
students[2]
php
$array=array("a","b","c");//下标默认从0开始
echo$array[0];//a
?
>
创建示例
关联数组:
使用一个键值对(字符串作为数组元素的索引)来保存值或名称。
如:
php
$Student=array("name1"=>"Jame","name2"=>"Jack","name3"=>"Mary");
echo$Student["name3"];//Mary
?
>
创建示例
多维数组:
数组元素值中存放的又是数组,那么该数组就称为多维数组。
多维数组可以是二维也可以是三维或四维。
如:
(二维数组)
php
$Student=array(
"0"=>array("name"=>"James","sex"=>"Male"),
"1"=>array("name"=>"Hony","sex"=>"Female")
);
echo$Student["0"]["sex"];
?
>
示例汇总:
php_array.php
数组的取元素
一维枚举:
$array[0]
一维关联:
$Student[“name3”]
二维枚举:
$Student[0][1]
二维关联:
$Student[“0”][“sex”]
创建示例
初始化数组
数组可以用两种方式初始化
●数组标识符
●array()函数
数组标识符:
即使用空括号,如:
php
$Student[]="James";//等价于$Student[0]="James"
$Student[]="John";//等价于$Student[1]="John";
echo$Student[1];
?
>
默认情况,下标按顺序分配给数组,但也可以为数组随机分配下标
$Student1[10]="Tom";//下一个下标会在10之后,即11
如:
php
$Student1[5]="Tom";//默认初始值
$Student1[10]="Tom";//默认初始值
$Student1[]="Mary";//向后递增11
echo$Student1[11];
?
>
使用array()函数
php
$Student2=array("Jame","Mick","Mile");
$Student2=array("Jame",5=>"Mick","Mile");//Mile的下标为6
echo$Student2[6];
?
>
PHP数组可以混合存放
php
//混合存放
$arry=array(1,2,"eduask"=>"华育国际");
echo$arry[0];
echo"
";
echo$arry["eduask"];
?
>
注意:
声明数组后,数组中的元素个数还可以自由更改,只要给数组赋值,数组就会自动增加长度。
代码汇总:
php_array2.php
使用数组
使用内置函数来操作数组
●count()—数组大小
●array_slice()—拷贝指定数组内容
●array_shift()—删除数组的第一个元素
●array_push()—追加数组
●array_merge()—合并两个数组
●array_intersect()--计算数组的交集,即连个数组都出现的数据
●array_unique()--从两个数组中,不重复的数据
●array_reverse()—倒序数组
示例代码:
php_array_fun.php
数组的循环操作
使用foreach可以访问每个元素,foreach可以循环多值变量
php
//枚举数组
$Student=array("Jame","Mick","Mile");
foreach($Studentas$new){
echo$new."
";
}
?
>
//$new定义为普通变量,变量名可以随便定义
关联数组采取键和值一起循环的方式读取
php
//关联数组
$Student=array(
"stud1"=>"Jame",
"stud2"=>"Mick",
"stud3"=>"Mile");
foreach($Studentas$stud=>$name){
print$stud."=>".$name."
";
}
?
>
注意:
关联数组如果采用
foreach($Studentas$name){
//则$name会读取值,键名就自动不读取
}
示例汇总:
php_foreach.php
each()函数循环读出数组
php
$Student=array("name1"=>"Jame","name2"=>"Jack","name3"=>"Mary");
list($key_name,$val)=each($Student);
echo($key_name);
echo($val);
?
>
//each()会每次读取数组中的每行数组,并赋值到list所对应的变量中
示例:
php_each.php
key()
用于返回当前指针位置的数组元素键值
mixedkey(arrayarr)
示例:
php_key.php
reset()
用于将该函数参数内的数组指针重置到数组的开始位置
mixedreset(arrayinput)
示例:
php_reset.php
end()
将数组指针指向最后一个元素
mixedend(arrayinput_array)
next()
将数组指针指向下一个元素
prev()
将数组指针指向上一个元素
current()
用于返回当前指针位置的数组元素值。
(关联数组较多)
mixedcurrent(arrayinput)
示例:
php_current.php
还有
array_php()
array_unshift()
array_pad()
数组排序
sort()—按数字或者字母顺序给数组升序排序
php
//数组排序
$Student4=array(23,67,2,14,90,72);
sort($Student4);
foreach($Student4as$new4){
echo$new4."
";
}
?
>
但注意下列代码的运行结果
php
$Student=array("JP"=>"JohnSmith","AS"=>"XamesPatt");
sort($Student);
foreach($Studentas$key=>$new){
echo$key."=>".$new."
";
}
?
>
注意:
sort()函数会把关联数组的键值改写成数值型。
如果要避免这个情况使用asort();
关联数组的排序会根据值的ASCII字母依次排序
rsort()—与sort一样,只是排列为倒序排列
arsort()—与asort一样,只是排列为倒序排列
ksort()—对关联数组的下标升序排序
krsort()—用法同上,降序排序
usort()—多维数组排序
示例汇总:
php_sort.php
数组顺序随机化处理
php
$Array_shuffle=range(1,100);//随机范围,包括1和100
shuffle($Array_shuffle);//让1到100的数随机填充到数组$Array_shuffle中,不重复出现
foreach($Array_shuffleas$new){
echo$new."\t";
}
?
>
示例:
php_range.php
数组函数
print_r()
输出将数组结构
boolprint_r(arrayarr)
示例:
php_print_r.php
in_array()
在数组中查找指定的元素,查找成功则返回true,否则返回false
boolin_array(stringstr,arrayarr)
参数:
str:
要查找的字符串
arr:
查找数组
bool:
查找结果
示例:
php_in_array.php
array_keys()
返回由某数组所有键值组成的数组
arrayarray_keys(arrayinput)
参数:
input指定取键值的数组
返回数组
示例:
php_array_keys.php
array_key_exists()
用于判断键值是否为该函数参数所指定的数组的键值。
返回trueorfalse
boolarray_key_exists(stringkey,arrayarr)
示例:
php_array_key_exists.php
array_values()
用于返回指定数组中的所有元素值
arrayarray_values(arrayarr)
示例:
php_array_values.php
网页效果图的制作