函数的基本概念
函数:function,是一种语法结构,将实现某一个功能的代码块(多行代码)封装到一个结构中,从而实现代码的重复利用。(复用)
函数定义语法
函数有几个对应的关键点:function关键字、函数名、参数(形参和实参)、
函数体和返回值
基本语法:
function 函数名(参数){
//函数体
//返回值:return 结果
}
定义函数的目的:是为了实现代码的重复利用,一个功能一个函数(简单明了);
函数的使用:通过访问函数的名字+() //如果函数在定义的过程中有参数,那么再调用的时候就必须传入对应的参数 ;函数是一种结构不会自动运行,必须通过调用才会执行
代码演示
<?php
//函数
//定义函数
function display(){
echo 'hello world';//没有返回值
}
//调用函数
display();
?>
函数是在代码执行阶段,碰到函数名字的时候才会调用,不是再编译阶段。
函数的调用特点:只要系统在内存中能够找到对应的函数,就可以执行(函数的调用可以在函数的定义之前)
函数执行的内容分析
- 该读取代码进入到代码段
- 根据代码逐行执行
以上愿意编译和执行是分开的(先编译后执行)
函数命名规范
命名规范:有字母、数字和下环线组成,但是不能以数字开头
函数作为一种常用的结构,一般遵循以下规则:(函数通常名字代表着函数的功能,而有些功能会比较复杂,可能一个单词不足以表达,需要多个组合)
- 驼峰法
除了左边第一个单词外,后面所有的单词的首字母都大写:showParentInfo()
- 下划线法
单词之间通过下划线连接,单词都是小写字母:show_parent_info()
函数名字:在一个脚本周期中,不允许出现同名函数(通常在一个系统开发中都不会出现同名函数)
函数的参数
函数的参数分为两种:形参和实参;
形参
形参:形式参数,不具有实际意义的参数,是在函数定义时使用的参数
实参
实参:实际参数,具有实际数据意义,是在函数调用时使用的参数
形参是实参的载体:实参再调用时通常是需要传入到函数内部参与计算(运算),那么需要在函数内部去找到实际数据所在的位置才能找到数据本身:需要实际调用的时候,将数据以实参形式传递给形参;给形参赋值,从而使得函数内部可以用到外部数据。
<?php
//函数参数
//定义函数
function add($arg1,$arg2){ //形参可以有多个,使用逗号分隔即可
//函数体:可以直接使用形参运算
echo $arg1+$arg2;
}
add(1,2)
?>
注意:
1.在php中允许实参多于形参(个数):函数内部不同而已
2. 在php中理论上形参个数没有限制(实际开发不会太多)
3. 实参不能少于形参个数
函数形参的默认值
默认值:default value,指的是形参的默认值,在函数定义的时候,就给形参进行一个初始赋值:如果实际调用的参数(实参)没有提供,那么形参就会使用定义是的值来进入函数内部参数运算。
通常默认值用在一些,一定会有某个数据参与。但是可能通常时某个我们知道的值
<?php
$num1 =10;
function jian($num1 = 0,$num2 = 0){ //当前的$num1是形参,在编译时不执行,即便执行也是在jian函数内部,不会与外部的$num1变量冲突
echo $num1-$num2;
}
//调用:默认值如果存在,可以不用传入
jian($num1);
echo $num1;
?>
注意事项
1.默认之的定义是放在最后的(多个),不能左边形参有默认值,但是右边没有
函数外部定义的变量名字与函数定义的形参名字冲突(同名)是没有任何关联关系的;如果多个函数使用同样的形参名字也不冲突。
函数参数-----引用传参
实参在调用时会将值赋值给形参,那么实际上使用的方式就是一种简单的值传递:将实参(如果是变量或者其他表达式)的结果(值)取出来赋值给形参:``形参与外部实际传入的参数本身没有任何关联关系
;只是结果一样
有的时候,希望在函数内部拿到的外部数据,能够在函数内部改变,那么就需要明确告知函数(定义时),函数才会再调用的时候主动获取外部数据的内存地址。以上这种定义形式参数的方式叫做引用传参。
基本的定义语法:
function 函数名(形参1,&形参2){
//函数体
}
//在调用的时候,必须给引用船只的参数位置传入实际参数,而且参数本身必须是变量。(变量才有指向的数据的内存地址)
function display($a,&$b){
//修改形参的值
$a = $a * $a;
$b = $b * $b;
echo $a,'<br>',$b,'</br>';
}
//定义变量
$a = 10;
$b=5;
display($a,$b);
echo '<hr>',$a,'<br>',$b;
引用传值注意:在传入参数的时候,必须传入变量
函数体
函数体:函数内部(大括号{}里面)的所有代码都称之为函数体
函数体:基本上所有的代码都是代码都可以实现
- 定义变量
- 定义常量
- 使用流程控制(分支、循环)
- 可以调用函数
函数返回值
返回值:return
,指的是将函数实现的结果,通过return关键字,返回给函数u外部(函数调用处)在php中所有的函数都有返回值。(如果没有明确return使用,那么系统默认返回NULL)
<?php
//函数返回值
//定义函数
function display(){
//输出
echo __FUNCTION__; //输出当前函数名字
}
var_dump(display());
返回值作用:将计算器结果返回给调用处
function add($num1,$num2){
return $num1 +$num2;
}
$res =add(10,20);
echo $res;
注意:函数的返回值可以是任意数据类型
return 关键字:
- return 在函数内部存在的价值:返回当前函数的结果
return 还可以在文件中直接使用(不在函数里面)
:代表文件将结果return后面跟的内容,转交给包含当前文件的位置。(通常在系统配置文件中使用较多),在文件中也代表着终止文件后面的代码:return之后的内容不会执行