1.1回顾
1、PHP四种定界符
a)标准风格(推荐使用)
//PHP代码
?>
b)短标记风格,在php.ini中开启short_open_tag=on
//PHP代码
?>
c)asp风格,在php.ini中开启asp_tags=on
//PHP代码
%>
d)script风格
//PHP代码
PHP支持省略结束定界符,在什么情况下省略?
从PHP开始定界符一直到最后全部都是PHP代码的时候可以省略
2、PHP语法的特点
a)PHP以分号结尾;
b)PHP关键字不区分大小写,变量名是区分大小写的。
3、变量
a)变量的概念
i.变量是计算机内存中的一段空间,用来存储值。
b)变量的命名规则
i.变量必须以$开头,$不是变量名的一部分,仅仅表示变量的开始。
ii.除了$外,以字母、下划线开头,后面跟的是字母、数字、下划线。
iii.变量名区分大小写。
c)变量的传值和传址
i.默认情况下,变量的赋值传递的是值
ii.在变量前面加上&符,表示取变量的地址。
d)销毁变量
i.用unset()函数销毁变量
ii.销毁的是变量名,变量的值由PHP垃圾回收机制销毁。
e)可变变量
i.将变量的名字存在另一个变量中。
4、常量
a)常量的定义
i.固定不变的值,如果有一个值在脚本执行的过程中值保持不变,就可以将这个值声明成常量
b)定义常量的注意事项
i.常量名前面没有$符
ii.用define(常量名,常量值,[true|false])函数来声明
iii.默认常量名是区分大小写,可以通过设置define()的第三个参数为true就不区分大小写。
iv.常量只能声明一次
c)判断常量是否被定义
i.通过defined()函数来判断常量是否被声明
5、变量的数据类型
a)标量类型(基本类型)
i.×××(int)
ii.浮点型(float)也叫双精度型(double)
iii.布尔型(true|false)
iv.字符串型
1.单引号字符串是真正的字符串
2.双引号字符串要将字符串中的变量解析。
3.如果变量在字符串的中间,用{}括起来,{和&符之间没有顺序,{$和${都可以。
b)复合类型
i.数组
ii.对象
6、数组
a)分组分为索引数组和关联数组,
b)索引数组:通过元素的位置做下标(键)
c)关联数组:通过与值有某种关联的字符串做键。
7、输出语句
a)echo
i.可以输出数字、字符串
ii.不能输出布尔值,TRUE输出成1,FALSE输出层空
iii.不能输出数组和对象。
iv.没有返回值
v.Echo不带括号可以输出多个参数,如果带括号只能输出一个参数
b)print
i.只能输出数字和字符串
ii.print带括号不不带括号都只能有一个参数
iii.输出成功会返回1,失败返回0
c)print_r
i.用来输出数组的详细信息,包括数组的键和值。(没有数组类型)
d)var_dump
i.可以数组所有的变量,数字、字符串、布尔、数组、对象,包括键、值、数据类型。
8、PHP执行过程
a)客户端给服务器发送一个HTTP请求,如果请求的是HTML页面,服务器不执行,直接将HTML页面发送到客户端;如果请求的是PHP页面,apche会执行php页面并生成标准的HTML页面发送到客户端。
9、PHP的注释
a)单行注释//和#
b)多行注释:/* */
10、PHP运算符
a)算术运算符一元运算符二元运算符
-+
++-
--*
/
%
注意:
1、+只能做数字运输,不能做字符串运输
2、++前置和++后置
++前置:先自增
++后置:后自增
b)关系运算符>
>=
<
<=
==
!=
===
!==
注意:
1、比较运算符的结果就两个,TRUE和FALSE
2、==只比较值,不比较数据类型
3、===比较值和数据类型
c)逻辑运算符&&与 并且
||或或者
!非取反
练习:
1、请写出表达式
评选三好学生的条件,语文($ch)和数学($math)不低于90分
$ch>=90&&$math>=90
等价于
!($ch<90 || $math<90)
2、写出表达式
评选三好学生的条件,语文($ch)或数学($math)超过90分
$ch>90 || $math>90
//等价于
!($ch<=90 && $math<=90)
3、写出表达式
年龄($age)在20~30之间
$age>=20 && $age<=30
等价于
!($age<20|| $age>30)
4、小红嫁人的条件,年龄($age)必须在20~30之间,并且钱($money)必须超过100元。
$age>=20 && $age<=30 && $money>100
5、小红嫁人的条件,年龄($age)必须在20~30之间,或者钱($money)必须超过100元。
$age>=20 && $age<=30 || $money>100
d)字符串连接符
字符串连接符(.)。
e)赋值运算符=赋值
+=a+=b a=a+b
-=
*=
/=
%=
.=
f)三元运算符
表达式?值1:值2
11、判断语句
a)单分子
if(判断){
//代码
}
b)双分支
if(判断){
//代码1
}
else{
//代码2
}
1.2作业(判断闰年)
1.2.1设计界面
1.2.2判断是否点击提交按钮
1.2.3判断闰年的业务逻辑
完整代码如下:
1<?php
2//判断是否点击了提交按钮
3if(isset($_POST['button']))
4{
5$year=$_POST['year'];
6//判断输入的值是否是数字
7if(is_numeric($year))
8{
9//将数字字符串转成数字类型
10$year+=0;
11//判断是否是整数
12if(is_int($year))
13{
14//判断年份是否为正数
15if($year>0)
16{
17/*
181、能被4整除,但是不能被100整除
192、能被400整除
20*/
21if($year%4==0 && $year%100!=0 || $year%400==0)
22{
23echo "{$year}是闰年";
24}
25else
26{
27echo "{$year}是平年";
28}
29}
30else
31{
32echo "年份不能为负数";
33}
34}
35else
36{
37echo "{$year}不是整数";
38}
39}
40else
41{
42echo "{$year}不是数字";
43}
44}
45?>
46
47
48
49
判断闰年50
51
52
请输入年份:53
54
55
56
57
58
59
1.3多分支
1.3.1语法结构:
if(条件)
{
}
elseif(条件)
{
}
elseif(条件)
{
}
else
{
}
1.3.2流程图
1.3.3例题:判断成绩
1、设计界面
2、业务逻辑
1<?php
2//判断是否点击提交按钮
3if(isset($_POST['button']))
4{
5$ch=$_POST['ch'];//获得语文成绩
6$math=$_POST['math'];//获得数学成绩
7//判断语文成绩是否在0-100之间
8if($ch=='' || !is_numeric($ch) || $ch<0 || $ch>100)
9{
10echo '语文成绩不在0-100之间';
11}
12//判断数学成绩是否在0-100之间
13elseif($math=='' || !is_numeric($math) || $math<0 || $math>100)
14{
15echo '数学成绩不在0-100之间';
16}
17else
18{
19//语文和数学都在0-100之间
20//求平均值
21$avg=($ch+$math)/2;
22echo '您的平均分是'.$avg.'
';
23
24if($avg>=90)
25{
26echo '孩子,你是我的骄傲';
27}
28elseif($avg>=80)
29{
30echo '好样的,宝贝';
31}
32elseif($avg>=70)
33{
34echo '你离优秀不远了';
35}
36elseif($avg>=60)
37{
38echo '你还是有潜力的';
39}
40else
41{
42echo '看来你不努力是不行了';
43}
44
45}
46}
47?>
48
49
50
51
判断成绩52
53
54
语文:55
56
57
58
数学:59
60
61
62
63
64
65
1.4多路选择
1.4.1语法结构
Switch(表达式)
{
Case 常量:
代码;
[Break;]
Case 常量:
代码;
[break;]
Default:
代码
}
1.4.2流程图
1.4.3例题:
//判断是否点击提交
if(isset($_POST['button']))
{
$num=$_POST['num'];
switch($num%3)
{
case 0:
echo '十全十美
';
break;
case 1:
echo '一心一意
';
break;
default:
echo '两全其美';
}
}
?>
多路判断 | |
---|---|
请输入一个数: | |
1.5循环语句
循环的三要素是
初始值
条件
增量
1.5.1for循环
语法:
for(初始值;条件;增量)
{
//循环体
}
例题:输出10句字符串
练习1:如下语句输出什么?
for($i=1;$i<=10;$i+=2)
{
echo "{$i}:锄禾日当午
";
}
?>
//结果
练习2:如下语句输出什么?
for($i=1;$i<=10;$i--)
{
echo "{$i}:锄禾日当午
";
}
?>
//死循环
练习3:如下语句输出什么?
for($i=1;$i<=10;)
{
echo "{$i}:锄禾日当午
";
}
?>
//死循环
练习4:如下语句输出什么?
for($i=1;;$i++)
{
echo "{$i}:锄禾日当午
";
}
?>
//死循环,只要缺少条件,就是死循环
练习5:如下语句输出什么?
for(;;)
{
echo "{$i}:锄禾日当午
";
}
?>
//死循环,这是一个典型的死循环
1.5.2while
while条件成立就执行,条件不成立就不执行。
语法:
While(条件)
{
//循环体
}
练习:如下语句输出什么?
$i=1;
while($i>10)
{
echo "{$i}:锄禾日当午
";
$i++;
}
?>
//结果:不输出,原因是条件不成立
1.5.3do-while
语法:
do
{
//循环体
}while(条件);
输出10句字符串
练习:如下代码输出什么?
$i=100;
do
{
echo $i.":锄禾日当午
";
$i++;
}while($i<=10);
?>
//输出
就一句:100:锄禾日当午
While和do-while的区别:
1、while是先判断再执行,do-while是先执行再判断
2、while条件不成立就不执行,do-while至少执行一次。
简述For、while、do-while他们使用的环境。
这三个循环是可以想通的;
如果明确知道循环多少次,选for循环;
如果不知道循环多少次,只是循环到条件不成立为止,选while或do-while,要先判断再执行选while,如果想选执行再判断选do-while。
比如:“请输入一个数,输入N或n停止”,首选什么循环?
答:首选do-while循环
1.5.4foreach
这个循环专门用来遍历数组。
语法:
foreach(数组as值变量)
{
//循环体
}
例题:
语法二:
foreach(数组as $key=>$value){
//循环体
}
//例题:
Foreach变量循环关联数组
1.6例题:从1加到100
思路:
//$sum=$sum+$i;$i$sum
11
21+2
31+2+3
41+2+3+4
1001+2+3+4++++100
代码如下:
//for循环实现
$sum=0;
for($i=1;$i<=100;$i++)
{
$sum+=$i; //$sum=$sum+$i;
}
echo "for:从1加到100的和是:{$sum}
";
//while循环实现
$i=1;
$sum=0;
while($i<=100)
{
$sum+=$i;
$i++;
}
echo "while:从1加到100的和是:{$sum}
";
//do-while循环实现
$i=1;
$sum=0;
do
{
$sum+=$i;
$i++;
}while($i<=100);
echo "do-while:从1加到100的和是:{$sum}
";
?>
1.7跳转语句
.7.1break
中断循环
阅读如下代码:输出什么?
for($i=1;$i<=10;$i++)
{
if($i==5)
{
break;
}
echo "{$i}:锄禾日当午
";
}
?>
1.7.2continue
跳过当前循环,进入下一个循环
思考如下代码,输入什么?
for($i=1;$i<=10;$i++)
{
echo "{$i}:锄禾日当午
";
if($i==5)
{
continue; //跳出5循环,进入6循环
}
}
Continue不起作用,因为在continue之前已经输出完成了。
1.8函数
1.8.1预定义函数
就是PHP已经定义好的函数。Is_numeric() is_int() var_dump()。
1.8.2自定义函数
语法:
Function 函数名(参数)
{
//函数体
[return]
}
例题:定义最简单的函数:
1.8.3调用函数
通过函数名来
1.8.4带参数的函数
关于参数的说法正确的是(A、B)
A:定义函数的参数是形参,调用函数的参数是实参。
B:形参中没有具体值,只起一个形式的作用,用来告诉调用的函数需要传递参数的个数和类型。
1.8.5Return
作用:1、终止函数的执行,【终止循环用break,终止函数用return】
2、返回值,返回到调用函数的地方。
1.9数组的分类
按照键来分:分为索引数组和关联数组
按结构来分:一维数组和多维数组。
一维数组:
二维数组:
二维数组就相当于在数组中存放数组。
获取关联数组的值
超过一维的数组都叫多维数组。
1.10页面乱码问题解决
原因是:浏览器不知道这个页面的字符编码
解决一:
在页面的最上面添加一个meta,在meta中设置字符编码
解决二:
设置PHP的头信息。
header(‘Content-Type:text/html;charset=utf-8’);
1.11作业:
1、求一个数的阶乘
0!=1
1!=1*1
2!=1*2
3!=1*2*3
4!=1*2*3*4
n!=1*2*3*4***n;
2、PHP写出九九乘法表
3、打印水仙花数 a3+b3+c3=abc
4、求数组元素的和
$num=array(10,20,30,40);
5、求数组中元素的最大值和最小值。