php基础学习day2
来源:互联网 发布:java web完整项目 编辑:程序博客网 时间:2024/06/17 15:24
函数的深入理解:
1.按照函数的执行规则,只要一看到函数,php就会开辟一个新栈。
2.各个栈里面的变量都是相互独立的。
对函数栈的深入理解的例子:
比如这一段代码:
<?php function abc($n){ if($n>2){ abc(--$n); } echo "$n=".$n."<br>"; } abc(4);?>
入口栈:abc(4):$n=4,abc(3),下面的echo还没有执行,这是第一层(执行完后,回到代码中的abc(4))
abc(3)开辟一个新栈,$n=3,abc(2),下面的echo还没有执行,这是第二层
abc(2)开辟一个新栈,$n=2,if语句不满足,因此echo(2),这是第三层,执行完后返回到第二层的abc(2)的地方
因此输出结果为:
$n=2
$n=2
$n=3
有编程基础的童鞋也能看出来,这个函数属于递归调用。
函数的基本结构:
funtion 函数名(参数列表){
函数体
return 语句
}
①参数列表可以使多个参数
②一个自定义函数内的变量是局部的,函数外不生效。
③使用global全局变量的时候,可使用在函数外的变量,例如:global $n。
PHP函数默认是值传递,如果要用引用传递的话加一个&:
下面我们来看这段代码:
<?php $a = 1; function abc($b){ $b = 111; } abc($a); echo $a;?>
这样我们得到的结果,输出的变量a的值仍然为 1.
但是如果我们仅仅在参数中的$b加一个&,结果就会大有不同:
<?php $a = 1; function abc(&$b){ $b = 111; } abc($a); echo $a;?>
这就是值传递和地址传递的区别。
阅读全文
0 0
- php基础学习day2
- PHP学习-DAY2-PHP基础2
- 数据库基础学习day2
- 黑马程序员-基础学习之day1-day2
- Android学习之Java基础篇day2
- 深度学习Day2(神经网络的基础编程)
- day2基础
- 黑马程序员_ios基础入门学习_C语言day2
- java基础加强---Day2
- oracle基础笔记day2
- C#基础笔记 Day2
- Oracle,day2,基础
- JavaSE基础--day2
- Java基础补习Day2
- Java基础Day2
- Django基础,Day2
- 传智播客学习日记Day2
- Html学习-Day2
- action输出from标签形成提交表单页面
- 如何构建高效测试团队,你必须知道的11招!
- jsp中的内置对象与servlet的内置对象的联系与区别
- pat 乙级 1053. 住房空置率 (20)
- $——jquery小结
- php基础学习day2
- 排序算法·冒泡排序
- C++中如何将string类型转化成char类型
- java 不常用用法总结
- unicode和utf8之间的关系
- 【18】vue.js — 动态组件
- HTML5实现动画三种方式
- bzoj1001 [BeiJing2006]狼抓兔子(网络流dinic算法||最短路spfa)
- eclipse中ermaster插件的安装和生成、导出实体类bean