函数和变量值类型Word格式文档下载.docx
- 文档编号:19976251
- 上传时间:2023-01-13
- 格式:DOCX
- 页数:14
- 大小:325.19KB
函数和变量值类型Word格式文档下载.docx
《函数和变量值类型Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《函数和变量值类型Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
^按位异或
两个操作数的二进制形式,对应(从右向左)位上的二进制位,如果不同,则结果位是1,否则是0
~按位非
单目运算符
对操作数的二进制形式,进行取反(包含符号位),
如果正数,按位非是一个负数
示例:
算术左移
对操作数的二进制形式,除符号位,其余位整体左移,左边溢出位忽略,右边空位补0
最终的规律:
每移一位,将原数扩大一位(计算机内最快的将一个数变为倍数的方法)
>
算术右移
对操作数的二进制形式,除符号位,其余位整体右移,右边溢出位忽略,左边空位补符号位
注意:
无论算术左移还是算术右移,都会保持符号位不变
流程控制:
分支结构、
if
switch
循环结构
for
foreach
while
do...while
循环结束与退出
break【n】
continue【n】
替代语法
为什么会有替代语法:
php是嵌入在html文档中的脚本语言,Php可以动态生成html标签,但是php主要功能并不是生成html标签,主要用于动态的生成数据(数据库中的数据)。
如果使用php来动态生成html标签及标签内部数据时,程序代码会显的很乱。
就是php中的流程控制的另一类写法。
哪些流程控制可以有替代语法
if、switch、for、foreach、while
替代语法的形式:
使用冒号'
:
代替左花括号'
{'
,使用endif、endsiwtch、endfor、endforeach、endwhle代替右花括号'
}'
在PHP中一个流程控制结构可以书写在不同的标签内
各种流程控制替代语法:
?
phpif():
<
phpendif;
phpswitch():
<
phpendswitch;
phpfor():
phpendfor;
phpforeach():
phpendforeach;
phpwhile():
phpendwhile;
示例1:
示例2:
PHP执行过程
任何一种语言的源代码计算机都没有办法直接执行,需要转换成计算机能够识别的机器指令。
PHP也是一门高级语言,也需编译(解释)
PHP的解析过程:
1、请求源代码,进行词法解析,语法解析。
词法解析,主要对源代码中的单词进行一个个的读入,判断,词法解析时,如果有错误,会报错。
编译错误。
语法解析,主要判断语法结构是否正确。
比如:
流程控制结构是否完成。
结果:
是可执行的机器代码
2、执行,执行时主要是对内存的操作,执行时也可能会出现错误,此时错误属性执行错误。
纯的html代码。
图解:
php嵌入html的解析过程
执行过程:
首先明确:
PHP是分段读取一次执行(编译),JS是分段读取分段执行
程序就是对内存的操作
函数可以先调用后定义,原因,程序的执行时需要先编译,对程序的编译的结果在内存有影响(编译之后,函数在内存中就产生了可执行的代)。
开始执行函数时,就可以找到函数的代码进行执行。
变量不可以先访问后定义,原因,程序在执行时需要行编译,但对变量的编译对内存不会有任何的影响。
函数
基本知识:
函数:
概念就是完成完成某一功能的代码段。
从代码结构上看就是使用{}将一段功能性的代码括起来,并使用function关键为这段代码起一个名子,就是封装。
在名子后加'
()'
,此函数的作用指示此名子,只能调用。
函数是模块化编程思想的产生。
在函数的基础上再进行封装就是面向对象的编程思想。
函数的作用:
减少代码冗余,达到一次定义多次调用。
函数的组成元素
函数名、形参、实参
函数的定义:
functionfunName(形参列表){
//函数体
【return值】;
}
说明:
funName就是一个函数名(标识符),命令规则,只能包含字母、数字、下划线,不能以数字开头。
命名方式,小驼峰,如果函数名,由多个单词组成,除第一个单外,以后的每个单字母大写,三个单词以上使用缩写。
函数的调用:
funName(实参列表);
函数的参数
与函数相关的参数有形参、实参
形参:
函数定义时的参数就称之为形参
作用:
用于向函数内部传递数据。
形参可以让函数更改具有通用性。
特点:
形参就是一个变量,只在函数内部有效,对函数外部不可见
实参:
函数调用时的参数称之为实参,实参可以变量,可以是字面值。
用于从函数外部向函数内部传递数据
形参与实参的区别:
实参是主动向函数内部数据,形参是被接收数据
形参的默认值
php中函数的形参可以赋值,赋的值就是形参的默认值
当函数调用时没有为形参传递数据,那么函数内部使用形参的默认值
当函数调用时有没形参传递数据,那么函数内部使用实参的数据。
形参可让函数更加具有通用性。
具有默认值的形参的使用,一般习惯上将具有默认值的形参放在形参列表最后。
php中实参的个数,不能少于不具有默认值的形参的个数。
实参的个数比形参的个数多,那么多个实参会被忽略。
形参与实参内存分析
源代码:
php
showInfo('
hellophper'
);
functionshowInfo($mes){
echo$mes;
}
$v1='
php15'
;
showInfo($v1);
1、编译,加载源代码,词法检查,语法检查(可执行机器代码)
2、执行函数的调用,检查看内存中有没函数存在,存在。
2.1、开启执行函数,查看是否形参,有没有?
没有默认,找实参(字面值)
2.2、在栈区再开辟一个专属于当前函数的内存空间
2.3、在函数专属的空间内,开启一个空间用于$mes变量名
2.4、执行ehco$mes,在函数专属空间内使用$mes变量存储的内存地址到,数据段的全局区找到相应当,并输出到缓存区。
2.5、第一次调用结束时,位于栈区的专用于第一次调用时开辟的内存空间的数据,会全部清空。
3、执行$v1='
3.1、直接在栈区开辟一个空间用于存储$v1
3.2、在数据段的全局区开辟一个空间用于存储'
3.3、将存储php15物理地址,传给$v1
4、执行函数第2次调用showInfo($v1)
4.1、检查函数是否有形参,有形参且,调用时也传递了实参$v1
4.2、在栈区再开辟一个专属于当前函数的内存空间
4.3、在函数专属的空间内,开启一个空间用于存储$mes变量
4.4、实参与形参传递默认是值的传递,相当于$mess=$v1,将$v1存储的地址指向的数据,存储,$mess存储的地址指向的空间。
4.5、将全局区为$mess变量开辟的存储数据的空间的地址传递给栈区中的$mess变量
4.6、执行ehco$mes,在函数专属空间内使用$mes变量存储的内存地址到,数据段的全局区找到相应当,并输出到缓存区。
4.7、第一次调用结束时,位于栈区的专用于第一次调用时开辟的内存空间的数据,会全部清空。
5、脚本执行结束栈区,与代码段清空,数据段中没有被指向的数据全部被操作系统回收。
函数的返回值
函数用于完成一功能,在完成功能的同时在函数内部会产生数据,数据可能会在函数执行结束后,被其后的代码所使用。
由于函数在执行结束后,所有的数据都被清空(函数内部无法保存数据),需要将函数产生的数据返回给函数的调用处
return值;
return并不是必须的,是根据需求而定。
一个函数内可以有多个return,当函数在执行时,遇到任何一个return都会直接结束函数体。
示例1:
函数体:
完成某一功能的代码段。
静态变量
在函数体内使用static定义的变量
static$vName=值;
●静态变量在函数调用时只会被初始化一次。
●静态变量不会随函数调用与结束,而消失,但是在函数外部无访问。
●每次在函数调用时,仍然保留着上次函数运行时的值,而且可以使用
●静态变量的值只能是简单的值,不能是一个式子
●当我们想在函数多次调用时,每次还有使用上一次函数调用时候的值,那么可以考虑使用静态变量。
静态变量的内存原理
functionfunTest(){
static$v1=100;
$v2=100;
$v1++;
$v2++;
echo"
fontcolor='
red'
"
.$v1.'
/font>
br/>
echo$v2.'
hr/>
}
funTest();
原理描述:
1.1、在编译时发现函数内用static关键字,那就会在静态区开辟一个空间用于存储数据100
2、执行函数调用
2.1、检查是否有形参存在(没有),
2.2、在栈区开辟一个空间用于存储函数的执行(为函数开辟的专属的空间)
2.3、在栈区开辟一个空间用于存储$v1,由于是staitc声明的,把会在静态区存储100数据的物理地址,传递栈区$v1
3、$v2=100;
3.1、会在栈区专属于函数空间内开辟一个空间存储$v2,
3.2、在全局区开辟一个空间用于存储100数据,
3.3、将全局区存储100数据的物理地址赋值给$v2。
4、执行$v1++
4.1、根据栈区中$v1的内存地,找到静态区中的内存空间,并将数据加1
5、执行$v2++
5.1、根据栈区中$v1的内存地,找到静态区中的内存空间,并将数据加1
6、执行echo$v1与echo$v2
7、函数调用结束:
8、第二次调用
8.1、static$v1=100在编译时已被执行,在函数调用时不会再执行初始化,但仍然在函数专的内存区域,开辟空间存储$v1
8.2、将静态区中的101的物理地址,传递栈区中的$v1
9、执行$v2=100,(步骤如:
3.13.23.3)
10、执行$v1++
10.1、根据栈区中$v1的内存地,找到静态区中的内存空间,并将数据加1
11、执行$v2++
11.1、根据栈区中$v1的内存地,找到静态区中的内存空间,并将数据加1
12、执行echo$v1与echo$v2
13、函数调用结束:
匿名函数
匿名函数,就是没有名子函数(JS)
可变函数
一个变量的值是另一个函数的名,那么就可以在变量名后使用'
来调用,与变量值同名的函数。
算法:
1、冒泡排序法
冒泡只是一形像的比喻,
伪类型
数据类型转换
自动
强制
数据类型判断
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 量值 类型