php 定界符 foreach,php基础教程之学习笔记2

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以分号结尾;

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

iii.不能输出数组和对象。

iv.没有返回值

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

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

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

a8e3da1f1094bae9d6b911787a778497.png

1.2.2判断是否点击提交按钮

a17118a46ea16f2405c69aaf9f4c3ea2.png

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流程图

c4a590e88f1c1cc86692df57e5de2c04.png

1.3.3例题:判断成绩

1、设计界面

a988834bf293508761fb9bc818a877e3.png

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流程图

69f1d16db7789225fd9bdba776e43e91.png

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句字符串

df71fa139a5e2f859faea75320e52aa6.png

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

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

{

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

}

?>

//结果

618e8523d0fcd3d91b78f4e89c150323.png

练习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(条件)

{

//循环体

}

e9f5f6206497a961db9eaf3b3ae678d5.png

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

$i=1;

while($i>10)

{

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

$i++;

}

?>

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

1.5.3do-while

语法:

do

{

//循环体

}while(条件);

输出10句字符串

1810f1eebc28dcaca3115e6007b593bf.png

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

$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

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

6e647d5d1a3332f74cc9c674b86f1af0.png

语法:

foreach(数组as值变量)

{

//循环体

}

例题:

d27dd391fd0c5c5f9aa4a885f59d56af.png

语法二:

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

//循环体

}

//例题:

2f11331a3893d68478f6e04044bf0126.png

Foreach变量循环关联数组

cf940d3ea7f11b3770c81c8af407dbec.png

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

中断循环

8de19a2a8db4ce46639c6772d9a9fa02.png

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

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

{

if($i==5)

{

break;

}

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

}

?>

d7ab9e77a22eb8b788437ae57dd48cb0.png

1.7.2continue

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

1038137ebd6c4f47646c74d4dd9c96db.png

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

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

{

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

if($i==5)

{

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

}

}

b263cba01153fd62cec436ed7011a5ee.png

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

1.8函数

1.8.1预定义函数

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

1.8.2自定义函数

e7d6b0899e5f36db269a6b17609876c6.png

语法:

Function 函数名(参数)

{

//函数体

[return]

}

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

76e1985211443809f53d14673bd938cd.png

1.8.3调用函数

通过函数名来

1f83add72702bfce72bd2a5eaf1062c9.png

1.8.4带参数的函数

1b872579d472f684d6129350fed756b2.png

关于参数的说法正确的是(A、B)

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

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

1.8.5Return

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

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

8f2276bd082596266d3894d99bcc9bf4.png

1.9数组的分类

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

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

一维数组:

40d9331dffd12b708a8dec0b7769b7fa.png

二维数组:

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

62ad2a9f2839ad00b69ca38ba3a86467.png

f26332dbd8c693e7517e51906d27179d.png

获取关联数组的值

6d21ea58a37d412e9f97207d786cad9f.png

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

1.10页面乱码问题解决

4af0a4eba41018d5b9e851c0f2ac6297.png

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

解决一:

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

d01ea2a95992a912d311319e405cdf2b.png

解决二:

设置PHP的头信息。

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值