1.1 回顾

1、 PHP四种定界符

a) 标准风格(推荐使用)

<?php

//PHP代码

?>

b) 短标记风格,在php.ini中开启short_open_tag=on

<?

//PHP代码

?>

c) asp风格,在php.ini中开启asp_tags=on

<%

//PHP代码

%>

d) script风格

<script language=’php’>

//PHP代码

</script>

PHP支持省略结束定界符在什么情况下省略

PHP开始定界符一直到最后全部都是PHP代码的时候可以省略

2、 PHP语法的特点

a) PHP以分号结尾

 wKiom1gsN-KBEB3WAAALE3qYH6k014.png

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输出成1FALSE输出层空

iii. 不能输出数组和对象

iv. 没有返回值

v. Echo不带括号可以输出多个参数,如果带括号只能输出一个参数

wKiom1gsN_3B4LRlAAAJnsYhpas543.png 

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、 比较运算符的结果就两个,TRUEFALSE

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)

wKioL1gsOA7gL9kZAAAOyVwZDO4988.png 

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 设计界面

wKiom1gsODewV_KwAAAHGNnFPoo659.png 

1.2.2 判断是否点击提交按钮

wKioL1gsOFTQ0SHVAAASe1Kh2Jo821.png 

1.2.3 判断闰年的业务逻辑

完整代码如下:

<?php

//判断是否点击了提交按钮

if(isset($_POST['button']))

{

$year=$_POST['year'];

//判断输入的值是否是数字

if(is_numeric($year))

{

//将数字字符串转成数字类型

10 $year+=0;

11 //判断是否是整数

12 if(is_int($year))

13 {

14 //判断年份是否为正数

15 if($year>0)

16 {

17 /*

18 1、能被4整除,但是不能被100整除

19 2、能被400整除

20 */

21 if($year%4==0 && $year%100!=0 || $year%400==0)

22 {

23 echo "{$year}是闰年";

24 }

25 else

26 {

27 echo "{$year}是平年";

28 }

29 }

30 else

31 {

32 echo "年份不能为负数";

33 }

34 }

35 else

36 {

37 echo "{$year}不是整数";

38 }

39 }

40 else

41 {

42 echo "{$year}不是数字";

43 }

44 }

45 ?>

46 <form name="form1" method="post" action="">

47   <table width="500" border="1">

48     <tr>

49       <th colspan="2">判断闰年</th>

50     </tr>

51     <tr>

52       <td>请输入年份:</td>

53       <td><input type="text" name="year" id="year"></td>

54     </tr>

55     <tr>

56       <td colspan="2"><input type="submit" name="button" id="button" value="提交"></td>

57     </tr>

58   </table>

59 </form>

1.3 多分支

1.3.1 语法结构

if(条件)

{

}

elseif(条件)

{

}

elseif (条件)

{

}

else

{

}

1.3.2 流程图

wKiom1gsOGPg4DRvAAB14cwn82g063.png 

1.3.3 例题:判断成绩

1、 设计界面

wKioL1gsOG6CuLSCAAAIOebav6w628.png 

2、 业务逻辑

<?php

//判断是否点击提交按钮

if(isset($_POST['button']))

{

$ch=$_POST['ch'];//获得语文成绩

$math=$_POST['math'];//获得数学成绩

//判断语文成绩是否在0-100之间

if($ch=='' || !is_numeric($ch) || $ch<0 || $ch>100)

{

10 echo '语文成绩不在0-100之间';

11 }

12 //判断数学成绩是否在0-100之间

13 elseif($math=='' || !is_numeric($math) || $math<0 || $math>100)

14 {

15 echo '数学成绩不在0-100之间';

16 }

17 else

18 {

19 //语文和数学都在0-100之间

20 //求平均值

21 $avg=($ch+$math)/2;

22 echo '您的平均分是'.$avg.'<br>';

23 

24 if($avg>=90)

25 {

26 echo '孩子,你是我的骄傲';

27 }

28 elseif($avg>=80)

29 {

30 echo '好样的,宝贝';

31 }

32 elseif($avg>=70)

33 {

34 echo '你离优秀不远了';

35 }

36 elseif($avg>=60)

37 {

38 echo '你还是有潜力的';

39 }

40 else

41 {

42 echo '看来你不努力是不行了';

43 }

44 

45 }

46 }

47 ?>

48 <form name="form1" method="post" action="">

49   <table width="500" border="1">

50     <tr>

51       <th colspan="2">判断成绩</th>

52     </tr>

53     <tr>

54       <td>语文:</td>

55       <td><input type="text" name="ch" id="ch"></td>

56     </tr>

57     <tr>

58       <td>数学:</td>

59       <td><input type="text" name="math" id="math"></td>

60     </tr>

61     <tr>

62       <td colspan="2"><input type="submit" name="button" id="button" value="提交"></td>

63     </tr>

64   </table>

65 </form>

1.4 多路选择

1.4.1 语法结构

Switch(表达式)

{

Case 常量:

代码;

[Break;]

Case 常量:

代码;

[break;]

Default:

代码

}

1.4.2 流程图

wKiom1gsOHrCSou_AABnwuREnIU277.png 

1.4.3 例题

//判断是否点击提交

if(isset($_POST['button']))

{

$num=$_POST['num'];

switch($num%3)

{

case 0:

echo '十全十美<br>';

break;

case 1:

echo '一心一意<br>';

break;

default:

echo '两全其美';

}

}

?>

<form method="post" action="">

<table width="500" border="1">

<tr>

<th colspan="2">多路判断</th>

</tr>

<tr>

<td>请输入一个数:</td>

    <td><input type="text" name="num"></td>

</tr>

<tr>

<td colspan="2">

    <input type="submit" name="button" value="提交">

    </td>

</tr>

</table>

</form>

1.5 循环语句

循环的三要素是

初始值

条件

增量

1.5.1 for循环

语法:

for(初始值;条件;增量)

{

//循环体

}

例题输出10句字符串

wKioL1gsOIXSd7S-AABT8U04ZOI147.png 

练习1:如下语句输出什么?

<?php

for($i=1;$i<=10;$i+=2)

{

echo "{$i}:锄禾日当午<br>";

}

?>

//结果

wKioL1gsOJCzNJ9dAAAJu5pvZLI644.png 

练习2:如下语句输出什么?

<?php

for($i=1;$i<=10;$i--)

{

echo "{$i}:锄禾日当午<br>";

}

?>

//死循环

练习3:如下语句输出什么?

<?php

for($i=1;$i<=10;)

{

echo "{$i}:锄禾日当午<br>";

}

?>

//死循环

练习4:如下语句输出什么?

<?php

for($i=1;;$i++)

{

echo "{$i}:锄禾日当午<br>";

}

?>

//死循环,只要缺少条件,就是死循环

练习5:如下语句输出什么?

<?php

for(;;)

{

echo "{$i}:锄禾日当午<br>";

}

?>

//死循环,这是一个典型的死循环

1.5.2 while

while条件成立就执行,条件不成立就不执行。

语法

While(条件)

{

//循环体

}

wKiom1gsOJvRcT_3AABZ2s0hT1A690.png 

练习如下语句输出什么?

<?php

$i=1;

while($i>10)

{

echo "{$i}:锄禾日当午<br>";

$i++;

}

?>

//结果不输出原因是条件不成立

1.5.3 do-while

语法

do

{

//循环体

}while(条件);

输出10句字符串

wKioL1gsOKazpEmHAABYGx25xy8152.png 

练习:如下代码输出什么?

<?php

$i=100;

do

{

echo $i.":锄禾日当午<br>";

$i++;

}while($i<=10);

?>

//输出

就一句100:锄禾日当午

Whiledo-while的区别:

1、 while是先判断再执行,do-while是先执行再判断

2、 while条件不成立就不执行do-while至少执行一次。

 

简述Forwhiledo-while他们使用的环境。

这三个循环是可以想通的

如果明确知道循环多少次,选for循环;

如果不知道循环多少次只是循环到条件不成立为止while do-while要先判断再执行选while如果想选执行再判断选do-while

比如“请输入一个数,输入Nn停止”,首选什么循环?

答:首选do-while循环

1.5.4 foreach

这个循环专门用来遍历数组

wKioL1gsOLLREcRNAAAf0fnztLg727.png 

语法

foreach(数组 as 值变量)

{

//循环体

}

例题:

wKiom1gsOL3z7pkeAAAjdz27g4M551.png 

 

语法二

foreach(数组 as $key=>$value){

//循环体

}

//例题

wKioL1gsOMfTuvrjAAAm9-Nme7g528.png 

Foreach变量循环关联数组

wKiom1gsONOgj1sfAABFPVcsJm8017.png 

1.6 例题:从1加到100

思路

//$sum=$sum+$i;

$i

$sum

1

1

2

1+2

3

1+2+3

4

1+2+3+4

100

1+2+3+4++++100

 

代码如下

<?php

//for循环实现

$sum=0;

for($i=1;$i<=100;$i++)

{

$sum+=$i;  //$sum=$sum+$i;

}

echo "for:1加到100的和是:{$sum}<br><br>";

 

//while循环实现

$i=1;

$sum=0;

while($i<=100)

{

$sum+=$i;

$i++;

}

echo "while:1加到100的和是:{$sum}<br><br>";

 

//do-while循环实现

$i=1;

$sum=0;

do

{

$sum+=$i;

$i++;

}while($i<=100);

echo "do-while:1加到100的和是:{$sum}<br><br>";

?>

1.7 跳转语句

.7.1 break

中断循环

wKioL1gsOOHCmXESAAA-p2y0WoY401.png 

阅读如下代码:输出什么?

<?php

for($i=1;$i<=10;$i++)

{

if($i==5)

{

break;

}

echo "{$i}:锄禾日当午<br>";


}

?>

wKioL1gsOOzRqWC1AAAIxMIVWSo800.png 

1.7.2 continue

跳过当前循环进入下一个循环

wKiom1gsOPaTN3K7AABWxsEe2k0247.png 

思考如下代码,输入什么?

for($i=1;$i<=10;$i++)

{

echo "{$i}:锄禾日当午<br>";

if($i==5)

{

continue;    //跳出5循环,进入6循环

}

}

wKiom1gsOQOBTE8XAAASmMXIBaw661.png 

Continue不起作用因为在continue之前已经输出完成了

1.8 函数

1.8.1 预定义函数

就是PHP已经定义好的函数Is_numeric()  is_int() var_dump()

1.8.2 自定义函数

wKioL1gsOQ_CnCdHAACNJCi-miU621.png 

语法

Function 函数名(参数)

{

//函数体

[return]

}

例题:定义最简单的函数:

wKioL1gsORqhTXEZAAAPgUKSVVE387.png 

1.8.3 调用函数

通过函数名来

wKioL1gsOSXCy5GwAAADQYdq7uI725.png 

1.8.4 带参数的函数

wKioL1gsOTKQytUqAABRY1gw1iM000.png 

关于参数的说法正确的是(AB 

A定义函数的参数是形参调用函数的参数是实参

B形参中没有具体值,只起一个形式的作用,用来告诉调用的函数需要传递参数的个数和类型。

1.8.5 Return

作用
1终止函数的执行,【终止循环用break,终止函数用return

2、返回值,返回到调用函数的地方。

wKiom1gsOT7BwGTXAAAybMEJsAo049.png 

1.9 数组的分类

按照键来分:分为索引数组和关联数组

按结构来分:一维数组和多维数组。

一维数组

wKioL1gsOUmQ0e7JAAACRo-xu3E423.png 

二维数组

二维数组就相当于在数组中存放数组

wKiom1gsOVSiE7C1AAAMSMUQm6g367.png 

wKioL1gsOXGAErvrAACyXH-wZYs504.png 

获取关联数组的值

wKiom1gsOXvjdpmGAAAyyDcjafI683.png 

超过一维的数组都叫多维数组。

1.10 页面乱码问题解决

wKioL1gsOYWzz3_rAAAV0Eo7byI602.png 

原因是浏览器不知道这个页面的字符编码

解决一:

在页面的最上面添加一个meta,在meta中设置字符编码

wKioL1gsOZLwGzvlAAAdR0UmotY255.png 

解决

设置PHP的头信息

header(‘Content-Type:text/html;charset=utf-8’);

wKiom1gsOZ6w6XqmAAAfGqSXJ_g286.png 

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、求数组中元素的最大值和最小值。