分支结构和foreach和for循环.docx
- 文档编号:8866479
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:26
- 大小:466.68KB
分支结构和foreach和for循环.docx
《分支结构和foreach和for循环.docx》由会员分享,可在线阅读,更多相关《分支结构和foreach和for循环.docx(26页珍藏版)》请在冰点文库上搜索。
分支结构和foreach和for循环
昨日回顾
PHP
PHP的标签
四种:
xml格式,标准
php?
>
脚本格式
短格式:
?
>
需要在php.ini设置open_short_tag=on
asp格式:
<%%>
需要在php.ini中设置asp_tags=on
php语言规范:
1、php所有代码必须位于php标记内
2、开始标记不能有空格,
3、如果是一个纯的PHP脚本文件,建议省略php结束标记
4、如果省略了php结束标记,那最后一行的分号不能省略
PHP中的注释:
单行注释//#
多行注释/**/
PHP中的变量
必须必须以'$'开头
只能包含字母,数字、下划线
$后不能以数字开头
删除一个变量:
unset(变量名);
PHP中的常量
常量是一种特殊的变量,在程序运行过程中值不能实被修改,常量本身也不能删除。
常量的使用可以不需要考虑作用域问题,整个脚本内都可以使用
常量名前不能加'$'符号
define()//define只要用于在类外定义常量
const//如果在类内定义常量,必须使用const,const也可以在类外定义常量。
内存的结构分析
操作层面对内存进行分析,内存就是用于临时存储数据,对操作系统层面有一个物理地址,绝对地址。
变量名:
变量就是内存中用于临时存储数据的一个空间,此空间有一个名子,用于对数据的读写,逻辑地址。
栈区:
主要用于存储变量名,及局部变量,函数的执行时也会在此区开辟一个新的空间。
堆区:
主要用于存储,复合数据类型,特点,所需在的空间是可变
代码段:
主用于存储源代码的二进制形式
数据段(全局区,静态区):
全局区:
用于存储全局变量
静态区:
用于存储静态变量
系统预设的变量:
超全局变量
$_GET
$_POST
$_REQUEST
$_SERVER:
$GLOBALS:
$_COOKIE:
主要用于按PHP脚本预设的目的,在客户端存储数据的一种技术,主要用于识别客户端。
$_SESSION:
主要用于在服务器端,按php脚本预设的目的,存储在服务器的数据
$_ENV:
主要用于记录环境信息
预置的系统常量
PHP_INI_SIZE:
PHP_INI_MAX:
PHP_OS:
PHP_VERSION:
魔术常量:
__LINE__、__FILE__、__FUNCTION__、__CLASS__、__METHOD__、__DIR__
字符集:
UNICODE与UTF8关系:
UNICODE是字符集,UTF8是UNICODE字符集的编码集。
可变变量(动态变量)
A变量的值是B变量的名,那么可以通过在A变量名前加二个$$
示例:
数据类型:
三大类:
标量数据类型、复合数据类型、特殊数据类型
标量数据类型:
整型
int
八进制是以0开头,不能包含7以上的
十六进制是以0x开头,0至9A至F
小数型
float(单精度)
浮点数据一般用于表示非常大的数据,日常生活中几乎用不到,所对于这么大的数,一般用于对这么大的数使用科学计数法进行近似的表示
3.402823466E+38
float也是占用4个字节
32位:
符号位s
24至31位:
指数位最大127也就是2的127次方1.7014167..
1至23位:
有效数据位1.111111*********111转换为十进制1.99999999约等于2
double(双精度)
数据类型
标量数据类型
boolean布尔类型:
主要用于表示事物仅存的两个状态,对、错,真假
取值:
true表示成立
false表示不成立
布尔类型的值本身没有什么意义,主要用于流程控制。
字符串
0个或多个字符的集合
字符定义方式:
方法1:
使用单引号定义的字符串
方法2:
使用双引号定义的字符串
方法3:
定界字符串
语法:
$v1=<<<定界符开始
内容
定界符结束;
示例:
注意:
定界符的开始标记与结束标记要一致
结束标记前不能有空格
定界符就可以理解为html编辑器。
定界符可以分为两类:
heredoc与nowdoc
heredoc的语法:
语法:
$v1=<<<定界符开始
内容
定界符结束;
nowdoc的语法:
语法:
$v1=<<<'定界符开始'
内容
定界符结束;
示例:
注意:
单引号与双引号的使用,一般如果字符串没有变量使用单引号(效率会高)。
复合数据类型
array(数组)
数组主要用于存储,多个具有一定的关系数据(变量)
示例:
object(对象)PHP高级
特殊数据数据类型:
resource(资源类型)
资源类型也量一种特殊的变量,程序员不能对资源类型进行任何的操作,只能查看(var_dump),
资源类型只能通过PHP为我们提供的特殊的函数来创建。
资源类型主要用于表示php的扩展资源(PHP之外的数据),例如:
一个数据连接,一个数据表的结果集,一个外部文本文件等。
null(空)
null也是一种PHP中的特殊的变量,表示null,一般查看一个没定义的变量,或变量的被unset()。
运算符
虽然程序语言中有多种运算符,但是在计算机内部只有一种运行:
加法运算。
算术运算符
+、-、*、/、%、++、--
/除
%取模取余数
示例:
注意:
%与/运算符,本质都是除运行,但是除数不能是0
自增运算符:
++自增1
--自减1
自增运算符还可以分前置与后置
++$变量前自增
$变量++后自增
--$变量前自减
$变量--后自减
++$变量
运算规则:
对变量的值进行自加1,再使用变量的值参与整个式子的运算。
$变量++
运算规则:
先使用变量的原值参与整个式的运算,再对变量的值进行自加1
自增加综合应用:
示例1:
示例2:
比较运算符
比较运算符最终的结果就是true或false
>、<、=、>=、<=、==、!
=、===、!
==
==:
判断两操作数的值是否相等
!
=:
判断两个操作数的值是否不相等
===:
主要用于两个操作数提值与数据类型是同时否相等,如果相等返回true,否则返回false
!
==:
主要用于判断两个操作数的值与数据类型,只要有一者不相等,则返回true,相等则返回false(逆向思维)
示例:
逻辑运算符
主要是对多个式子进行运算(也就是比较多总情况)
&&、||、!
&&逻辑与:
运算规则:
两个式子如果都为true,则结果为true,否则结果为false
示例:
||逻辑或:
运算规则:
参与运算的两个式子如果都有false,则结果为false,否则为true(只要有一个为true,则结果为true)
!
逻辑非:
运算规则:
对操作数进行取反
逻辑短路:
1、根据逻辑与的假值运算规则(只要有一个为false,最终结果为false)
2、根据逻辑或的真值运算规则(只要有一个为true,最终结果为true)
赋值运算符
=赋值运算符:
作用是将赋值符号'='右边的式了的结果赋值给左边的变量
三目运算符
?
:
语法:
表达式1?
表达式2:
表达式3;
说明:
就是一个简单的if分支结构
如果表达式1成立,则选择表达式2,否则选择表达式3;
示例:
字符串运算符
主要于字符串的拼接
.
对两个字符串进行拼接
.=
运算规则:
在变量原字符串的后拼上新字符串,再赋值给原变量
示例:
自操作运算符
+=在变量原值的基础上加上新值,再赋值给原变量
-=在变量原值的基础上减去新值,再赋值给原变量
*=在变量原值的基础上乘上新值,再赋值给原变量
/=在变量原值的基础上除上新值,再赋值给原变量
%=在变量原值的基础上模上新值,再赋值给原变量
示例:
错误抑制符
php中如果在程序运行的过程中出现错误,那么就会有错误的提示:
Notice提示、Warning警告,当某些情况出现时并不会影响程序的继续执行,但最终的结果可能会不正确。
对于错误也不应该显示给用户看。
@错误抑制符
用法:
在可能出现的操作前加'@'
示例:
php.ini中设置
display_errors=off
注意:
php.ini中错误抑制的配置,会影响所有的php文件,所以在开发阶段,不要配置此项。
上线时建议关闭此处的错误提示。
位运算符
进制:
数码:
某一种进制中所能出现的数字
十进制:
0至9
二进制:
0、1
八进制:
0至7
十六进制:
0至9与A至F
基数:
某一种进制中所出现的数码的个数
十进制:
10(逢十进一)
二进制:
2(逢二进一)
八进制:
8(逢八进一)
十六进制:
16(逢十六进一)
权:
用于衡量,某一种进制中某一位上的数码作用大小的值,权是一个幂(xy)
x表示:
基数
y表示:
位数
(1234)10
数码4所在的在位的权:
1001
数码3所在的在位的权:
10110
数码2所在的在位的权:
102100
数码1所在的在位的权:
1031000
(1234)10为什么是1234
4*100+3*101+2*102+1*103=1234
(10101)2
从右向左每一位数码所在的位的权:
数码1所在的在位的权:
201
数码0所在的在位的权:
212
数码1所在的在位的权:
224
数码0所在的在位的权:
238
数码1所在的在位的权:
2416
(10101)2=1*20+0*21+1*22+0*23+1*24=21
8421BCD码
可以将255之前的二进制很方便转换成十进制
权
128
64
32
16
8
4
2
1
二进制数
1
1
0
0
0
0
1
权展开式:
某种进制中数位上的数码与该数码所在位上的权的乘积的和,任何一种进制都可按权展开式,转换为十进制。
(75)8=(?
)10
7*81+5*80=61
(FA)16=(?
)10
F*161A*160=
15*16110*160=(250)10
十进制转换成二进制:
分两整数与小数部分,分别进行转换,整数部分采用的是基数连除取余法。
小数部分采用的是基数连乘取整法
权
128
64
32
16
8
4
2
1
二进制数
1
0
1
十进制数
二进制转换为八进制(或十六进制):
1、以小数点为起点,整数部分向左,小数部分向右,每3位(或4位)一组,不足位数提整数部分在左边补0,小数部分在右边补0。
2、再将每一组3位(或4位)二进制转换成八进制(或十六进制)数。
(010110101.010)=(?
)8
(010110101.010)=(265.2)8
(10110101.01)=(?
)16
(10110101.0100)=(?
)16
115.4
B5.4
(10110101.0100)=(B5.4)16
原码:
原码就是符号(正负号)加上二进制数
正数的原码在最高位用0表示
负数的原码在最高位用1表示
注意:
计算机中高位只能是第32位
十进制数10的原码:
00000000000000000000000000001010
十进制数-10的原码:
10000000000000000000000000001010
反码:
正数的反码与原码相同
负数的反码是在原码的基础上,符号位不变,其余位取反
十进制数10的反码:
00000000000000000000000000001010
十进制数-10的反码:
原码:
10000000000000000000000000001010
反码:
11111111111111111111111111110101
补码:
正数的补码与原码相同
负数的补码在反码的基础上+1
十进制数10的补码:
00000000000000000000000000001010
十进制数-10的补码:
反码:
11111111111111111111111111110101
补码:
11111111111111111111111111110110
正数的原码反码补码相同
负数的
原码:
最高位为1
反码:
在原码基础上,符号位不变,其余位取反
补码:
在反码的基础上加1
&:
按位与
运算规则:
参与运算的两个操作数的二进制形式,对应位上的数,如果都为1,那么结果位上的就是1,否则为0
|:
按位或
运算规则:
参与运算的两个操作数的二进制形式,对应位上的数,如果都为0,那么结果位上的就是0,否则为1(换句话说,只要有一个为1则为1)
^:
按位异或
运算规则:
参与运算的两个操作数的二进制形式,对应位上的数,如果不同,那么结果位上的就是1,否则为0
~:
按位非
运算规则:
对操作数的二进制形式每一位取反(包含符号位)
示例:
<<:
算术左移
运算规则:
对参与运算的操作数的二进制形式,符号位不变,其余位整体左移,左边溢出的忽略,右边空位补0
>>:
算术右移
运算规则:
对参与运算的操作数的二进制形式,符号位不变,其余位整体右移,右边溢出的忽略,右边空位补符号位
示例:
流程控制
一、顺序结构
程序按代码书写的顺序自上而下的执行过程。
二、分支结构
PHP中分支结构分二种:
if结构与switch结构
if结构:
单分支
if(exp){
//code
}
说明:
当条件表达式exp成立时,执行code,
双分支
if(exp){
//code1
}else{
//defaultcode
}
说明:
当条件表达式exp成立时,执行code1,否则执行defaultcode(缺省语句体)
多分支
if(exp1){
//code1
}elseif(exp2){
//code2
}elseif(exp3){
//code3
}else{
//defaultcode
}
说明:
首先判断exp1表达式,如果成立执行code1,如果不成立继续判断exp2表达式,成立执行cod2,依此判断下去。
当所有的表达式都不成立时执行defaultcode
当前面的表达式成立后,不会再判断其后的表达式。
switch分支
语法:
switch(表达式){
case值1:
//语句体1;
break;
case值2:
//语句体2;
break;
case值3:
//语句体3;
break;
default:
//缺省语句体
}
说明:
switch后的表达式一般就是一个变量,
case后的值,一般就是一个具体的值或简单的表达式
switch与if的区别:
PHP中switch的比较属于==;JS中的switch的比较属性===
if的表达式一般用于表示某个范围,也可以表示具体的值
switch的表达一般用表示某个变量
示例:
三、循环结构
for循环
语法:
for(循环控制变量初始化;条件表达式;循环控制变量的更改){
//循环体
}
说明:
循环控制变量初始化;条件表达式;循环控制变量的更改循环三要素,
1、首先对循环控制变量初始化,只执行一次。
2、判断条件表达式,是否成立true,不成立true,直接退出,如果成立则执行循环体
3、循环体执行结束后,执行循环控制变量的更改
4、再使用循环控制变量的新值,来判断条件表达式,
5、重复执行2,3,4步,直到条件表达式不成立
表达式:
就使用运算符将多个变量或字面值,连接而成的一个式子,
条件表达式:
将现实中的条件转换成计算机能够识别的式子。
条件表达式可以是一个字面值,可以是一个变量,可以是一个关系表达式,可以是一赋值语句。
作业:
尝试实现一个数组的排序,不要使用PHP为我们封装好的排序函数。
foreach循环
主要用于遍历关联数组。
语法1:
foreach($arras$v){
//循环体
}
说明:
$arr是所在遍历的数组
$v就是一变量
执行过程,每次foreach结构会将数组$arr中的每一个元素的键值,赋值给$v变量,
foreach不需要为为控制循环次。
语法2:
foreach($arras$k=>$v){
//循环体
}
说明:
$arr是所在遍历的数组
$k与$v就是变量
执行过程,每次foreach结构会将数组$arr中的每一个元素的键名与键值,分别赋值给$k与$v变量,
foreach不需要为为控制循环次。
示例:
while循环
语法:
while(条件表达式){
//循环体
}
说明:
首先判断条件表达式,如果不成立直接退出,如果成立则执行循环体,
当循环执行结束后,再来判断条件表达式,依此循环下去,直到条件表达式不成立。
while与for的区别:
for主要用于循环次数已知或根据某种条件可以确定的循环情况
while主要用于循环次未知
for的循环三要素书写在for后的括号中,while结构中循环三要素,一般分开书写
do...while循环
语法:
do{
//循环体
}while(条件表达式);
说明:
首先执行循环体,当循环体执行结束后再来判断条件表达式,如果条件表达式不成立直接结束循环结构,如果成立执行循环体。
while与do...while区别:
while先判断条件表达式,再根据结果执行循环体
do...while先执行循环体,再判断条件表达式(循环体至少执行1次)
循环的结束与退出
break直接结束当前循环结构
breakn直接结束上n层循环结构
示例:
continue结束当前循环结构的本次循环,继续下一次循环
continuen结束当前循环结束的本次循环,继续上n层循环结构的下一次循环
示例:
算术运算符
字符串运算符
比较运算符
逻辑运算符
三目运算符
赋值运算符
自操作运算符
位运算符
错误抵制符
运算符优先级
代码执行结构
分支结构
循环结构
循环控制
标签语法
PHP脚本解释过程
PHP嵌入到HTML的解析过程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分支 结构 foreach for 循环