版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、昨日回顾PHP的执行过程源代码->机器可执行的指令->执行编译过程:词法解析、语法解析结果是可执行的文件执行:可执行文件的执行本质就是对内存的操作根据程序语言中不同的关键,有不操作,变量(全局变量):在编译不会对内存有影响function:在编译的时候会对内存有影响,在执行时首先查检是否有形参,如果有,看有没有默认值。再看实际调用的语句,有没有传递实参。在栈开辟一个专属于函数的内存空间。会在函数专属的内存开辟一个空间,存储形参名,要在数据段的全局区开辟空间存储数据,再将存储数据的空间地地,传递给栈区的形参。静态变量:编译时就会对内存有影响:在数据段的静态区存储数据静态变量的数据,静
2、态变量指向函数。执行时,会在栈区中函数的专属空间开辟一个内存空间,存储变量名,之后再将,静态区中数据100的物理地址,传栈区中的变量。/思路:冒泡排序法第1步,找出最大的一个数,存储在数组的最后比较次数(数组的长度-1)第2步,找出第2大的数,存储在数组的倒数第2个位置(在第) 比较次数数组长度-2)调换两变量的值:方式一:借助于第3个变量方式二:利用和减一个等于另一个方式三:利用异或示例:作用域PHP作用域指的变量的作用范围。全局作用域在函数外部定义的变量就叫全局变量,其作用域是全局作用域局部作用域在函数内部定义的变量就叫局部变量,其作用域是局部作用域。提示:php有很清晰的作用域在函数内部
3、使用外部的变量。方法1:使用$GLOBALS(此函数没有作用域问题,但有脚本限制$_SESSION)示例:方法2:将全局变量,作为实参传递到函数内部方法3:使用global关键字声明原理:在函数内部使用global声明一个变量时,首先会在全局找,是否有$v1的变量,有的话,将此变量的内存址传递函数内部的同名变量。(global相当于,向函数内部的同名变量传递了一个物理地址)在函数外部访问函数内部方法1:return方法2:使用global声明注意:global只能声明,不能赋值数据类型的转换在PHP中,有多种运算符,每一种运算的操作数据都要与运算相对就算术运算,操作的数据是,数值类型,字符串运
4、算符,操作的数据是字符串只有要相同数据类型才能进行直接运算,否则会进行转换。1、自动转换php在进行运算时,不是与运算符相对应的数据类型会自动 转换。此种转换是系统自动完成。2、强制转换在所需要转换的变量前使用小括号'()',并且在括号中输入目标数据类型语法:(目标数据类型)$变量;目标数据类型:int或integerbool或booleanstringfloatarrayobject其他数据类型转换为整型其他数据类型转换为字符型其他数据类型转换为布尔型3、使用转换函数intval();stringval();floatval();GetType();用于获取变量的数据类型Se
5、tType();用于设置变量的数据类型示例:伪类型伪类型:mixed混合数据类型void空没有返回值文件的引入PHP会将多个脚本文件所使用的到的相同的代码,会单独生成(封装)成一个脚本文件,在使用此功能代码的,脚本文件中引用,即为文件的引入。文件引入语法:方式1:requirerequire_once方式二:includeinclude_once根据引用的文件与被引入文件的逻辑上可以将引入分为前向引入:在当前脚本中使用另一个脚本中的功能性的功能。后向引入:当前脚本中有数据给另一个文件使用。示例:当前文件:03nxn.php文件03temp.html文件文件引入的区别require特点:在引入文
6、件的过程中,如果出错,那么直接结束当前脚本的执行。include经验法则:l 一般require引用功能性的代码(此种功能性的代码,在逻辑上引入其后的代码,依靠于被引入文件的代码)例如:数据库的连接,l 一般require会书写在第一行。l 一般include用于引入模板性的文件l include多用于分支结构l 如果被引入的文件发生错误,对引入文件的影响不大,那么使用includeonce的区别:没有Once的语法,每遇到一个require或include就会引入一次文件。有once的语法,只保证引入一次。示例1:03nxn.php文件 示例2:引入文件的原理 示例:引入文件:03demo_
7、require.php文件被引入文件:03nxn.php运行结果说明:首先03demo_require.php文件,require('03nxn.php')语句,并不会被执行当03demo_reuiqre.php文件,编译后,执行时,当执行到nxn()语句时,会在内存中还没有nxn()函数,所以报错。错误就是由引入文件与被引入文件编译不是同步的(先编译引入文件的源代码,在执行引入文件的编译后的代码时,则引入被引入文件,被引入文件才会被编译。)当执行到require('03nxn.php')语句时,才会引入03nxn.php文件源代码,再对03nxn.php文件中
8、的源代码进行编译。编译之后才执行文件的路径绝对路径就是以磁盘根目录(盘符)开始进行一级级目录指向文件的形式即为绝对路径磁盘绝对路径:如:D:php_folder2015102720151206code03demo_require.phpD:php_folder2015102720151206code网络绝对路径:如:网络绝对路径的好处,可以指向互联网上的一台电脑的中的文件相对路径./当前目录(可以省略)./上一级目录(可以连着书写././)/站点根目录(站点根目录使用的是DocumentRoot配置,指的就是那DocumentRoot所配置的那一串目录)向下访问:./文件夹名/文件夹名向上访问
9、:././相对路径的改变嵌套引入A脚本,引入B脚本,B脚本引入C脚本在进行嵌套引入脚本文件时,会发生相对路径的改变。示例:原因:使用了相对路径./与./示例:在使用时:对于嵌套引入不建议在中间文件中使用./与./,建议使用绝对路径示例:数组数组就是一组数据的集合,就是用于存储多个具有一定关系的多个变量。对应现实中的具有行列结构的数据。数组的定义方式1:使用array()数组结构示例:方式2:使用简单语法结构'',注意:此种语法只能在5.4及其以上的版本中使用示例:方式3:动态添加数元素的方式示例:数组的访问在数组中唯一标识元素的是下标(键名),语法:$数组名下标/键名示例:PH
10、P数组的特点1、php中数组可以直接使用,不需要预先定义。2、php中数组的长度不需预先定义。3、php中数组的元素可以是任意数据类型。4、php中数组的下标可以不连续PHP中数组的分类根据数组元素的下标是数值、字符还是数值与字符混合,可以将PHP中的数组分为,索引数组、关联数组、混合数组索引数组:数组元素的下标是整数,关联数组:数组元素的下标是字符。关联数组的特点:每个元素都由两部分组成,键名与键值。关联数组的创建:语法:$数组名 = array(键名=>键值,键名=>键值.);示例:数组的遍历遍历:就为了某种需求,对数组中所有的元素都进行一次访问。使用for循环结构,条件是所遍
11、历数组的元素的下标必须是连续的。示例:php为我们提供了专用于遍历数组的语法结构:foreach语法:foreach($arr as $v1【=>$v2】)/循环体说明:foreach是对数组的指针进行操作(读取每一个元素的键名与键值,并赋值给$v1与$v2,之后还要将指针下移)示例:foreach原理代码:$arr = '0'=>10,'3'=>20,'nine'=>30,'10'=>40;foreach($arr as $v1 => $v2)echo "键名为:$v1".
12、"键值为:$v2".'<br/>'原理:1、编译源代码, 2、执行 2.1、首先在栈区开辟一个空间存储$arr2.2、在存储数据时,发现赋值号右边是一个数组,那么就是在堆区开辟个空间用于存储数组的数据 2.3、将数组的内存 地址,传递给栈区中的$arr3、执行foreach3.1、在栈区开辟两个空间存储$v1与$v23.2、读取当前数组指针所指向的元素,将当前元素的键名与键值,赋值给变量$v1与$v23.2.1、会在全局区开辟空间用于存储数据0与103.3、将数组的指针下移一行 3.4、执行下一次循环,与3.2 3.2.1相同的操作,当前循环执行结束,将数组指针再下移一行。 3.5再次循环 3.6再次循环,循环结束,指针再下移一行 3.7再次循环时,发现没有数据,那么直接结束循环结构。 图解:数组相关函数each()主要用于每次读取数组当前指针所指向的元素(读取一个元素的)键名与键值,并组织混合数组返回。将指针下移一行。示例:list();语法:list(变量列表)=$数组名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年理塘县带编教师招聘笔试备考试题及答案解析
- 2026年泌阳县带编教师招聘考试备考题库及答案解析
- 2026年色达县带编教师招聘考试参考题库及答案解析
- 2026年峨边彝族自治县带编教师招聘考试备考题库及答案解析
- 2026年本溪满族自治县带编教师招聘考试模拟试题及答案解析
- 2026年高职分类招生综合考试真题试卷(含详细答案解析)
- 2026年五莲县带编教师招聘考试参考题库及答案解析
- 2026年瓮安县带编教师招聘考试参考题库及答案解析
- 2026年滨海县带编教师招聘笔试模拟试题及答案解析
- 2026年冕宁县带编教师招聘笔试参考题库及答案解析
- 2026年船舶专业正高级船舶电子员考试练习题及答案
- 2026年德惠市公益性岗位人员招聘(378人)笔试参考题库及答案详解
- (一检)2026-2027学年福州市高三年级适应性练习地理试题(含答案)
- 某机械制造厂安全生产规范
- 2025年通信工程师中级通信专业实务(终端与业务)考试真题及答案
- 《电力重大事故隐患判定标准及治理监督管理规定》国家能源局解读课件
- 2026年秋季学期小学统编版语文六年级上册(新教材)教学计划附教学进度表
- 工伤保险条例练习题及完整答案
- 26秋四年级上册数学第一单元提优卷《北师大版》
- 班级值日班长轮值制度及一日工作流程表(中学适用)
- 钢结构凉亭施工方案
评论
0/150
提交评论