PHP基础--函数
来源:互联网 发布:感人的故事 知乎 编辑:程序博客网 时间:2024/04/28 03:00
函数定义形式:
function 函数名(形参1,形参2,...){
函数体;
}
函数调用形式:
1,没有返回值的函数,则调用语句是独立的语句
函数名(实参1,实参2,...);
2,有返回值的函数,则调用语句
函数参数问题:
1,在调用时有形式参数
(1)形参一定是一个变量名
(2)该变量名只能是在该函数中有效的变量名
(3)而且只在该函数调用并执行时有效,函数结束,通常这些变量也就“销毁”
2,在调用时,有实际参数
定义形式:function 函数名(形参1,形参2,...){...}调用形式:函数名(实参1,实参2,...);
默认值参数:定义一个函数的时候,在形式参数的位置,可以给形式参数设定“默认值”
function getArea($r,$PI=3.14){...}//默认值参数需要放在“右边”
注:
1.默认值参数不能是对象或资源类型
2.默认值只能是常量表达式,或常量,不能是变量
function f1($v1=3) function f1($v2=__LINE__) //正确function f1($v1=3+1) function f1($v1=$m) //错误
函数的参数传值:
1.值传递
2.引用传递:引用传递 的形参(实参)在函数内部改变其值,在函数外面的实参也会相应修改
注:如果某个形参设定为引用传递,此时,实参只能使用变量,否则出现语法错误
3个系统函数:
func_get_args();//获得一个函数所接收到的所有是参数据,并结果是一个数组func_get_arg(n);//获得一个函数所接收到的第n个实参数据(n从0开始)func_num_args();//获得一个函数所接收到的的所有实参数据的个数
函数的返回值:
return
也可以用“引用传递”的方式返回
定义函数:function &函数名(形参1,形参2,...){ $result=0; ... return $result; }调用函数:$v1=&函数名(实参1,实参2,...);
函数的其他形式:
1.可变函数: $str="f1";
$v1=$str(3,4);
2.匿名函数:
表现1:$f1=function(){函数体;};表现2:调用其他函数2(匿名函数,实参1,实参2,...);
注:能够使用匿名函数当作实参的函数并不多!
其中一个常见的是:call_user_func_array(匿名函数,数组);
含义:将该数组的每一项当作该匿名函数的若干个实参,传递到该匿名函数中,并执行该匿名函数,并可以从该匿名函数中返回数据
变量的作用域:
1.局部作用域:只能在所定义的函数范围内使用
2.全局作用域:在函数的“外部”范围内使用
PHP中,局部和全局作用域是不重叠的
JS中全局作用域包括局部作用域
3.超全局:在函数内外都可以使用
4.静态局部作用域:数据能够在函数退出后仍然保持不丢失
局部访问全局变量的特定方法:
1.在局部范围内:global $变量名;
2.在函数中(局部范围):$GLOBALS['v1'];
注:通过$GLOBALS操作全局变量,是直接操作(而不是引用操作),即如果unset该对应元素,则全局变量对应变量也会被unset
实际上可以:$GLOBALS['v1_abc']=20;//类似局部使用全局
全局访问局部变量的特定语句:
1.通过引用传递的方式向形参传递一个引用实参变量
$v1=10;function f1(&$p1,$p2){...}$v2=f1($v1,10);
2.使用函数的引用返回形式
3.函数中使用global关键字来首次引用一个全局变量,则函数结束后在全局范围就可以使用该变量了
有关函数的系统函数:
function_exists();//判断某个函数是否被定义过,返回布尔值func_get_arg(n);func_get_args();func_num_args();
有关函数的编程思想:
1.递归函数:
例:计算n的阶乘function jiecheng($n){ if($n==1){ return 1; } $result=jiecheng($n-1)*$n; return $result;}$v1=jiecheng(6);echo "v1=$v1";
2.递推思想(迭代思想)
例:求斐波那契数列function fbnq($n){ $n1=1; $n2=1; $result=0; for($i=3;$i<=$n;$i++){ $result=$n1+$n2; $n1=$n2; $n2=$result; } return $result;}$v2=fbnq(5);echo "斐波那契数列第5项:".$v2;echo "斐波那契数列第12项:".fbnq(12);
- PHP基础----03函数
- php基础 常用函数
- PHP基础之函数
- php基础函数
- PHP基础函数
- PHP基础--函数
- php基础函数数组函数字符串函数
- PHP基础,字符串处理函数
- php基础系列:字符串函数
- php文件操作基础函数
- PHP基础之日期函数
- (四)php基础函数
- php基础之函数入门
- php基础03_函数
- php基础系列:php函数积累总结
- 【php基础】php数组常用操作函数
- 【php基础】php常用时间函数
- 【php基础】PHP常用字符串操作函数
- jquery.datatables出现DataTables warning: table id=tabList
- Linux性能监控之vmstat和dstat
- 解决Eclipse在线下载插件时遇到的问题
- mybaits返回的参数类型有错误
- 详解html和thymeleaf中的相对路径,解决springboot前台页面的相对路径问题
- PHP基础--函数
- __device__ __global__ __host__
- 人工智能时代下的机器学习笔记
- 协方差矩阵详解
- JS中call、apply、bind的区别
- 【大版本】企业级Office套包Spire.Office V2.16.23发布 | 附下载
- vector清空
- 在OpenSUSE42.3里面安装MongoDB
- WIN+Anaconda(python3.6)+Face_recognition安装