1、函数的基本概念
函数:function,是一种语法结构,将实现某一功能的代码(多行代码)封装到一个结构中,从而实现代码的重复利用
2、函数的定义语法
函数的几个关键点:
-
-
函数名
-
参数(形参和实参)
-
函数体
-
返回值
1、基本语法:
1 1、函数的定义: 2 function 函数名(参数){ 3 //函数体 4 //返回值:return 结果 5 } 6 //定义函数的目的:是为了实现代码的重复利用 7 8 示例: 9 <?php 10 function yb(){ 11 echo 'hello yb'; 12 } 13 ?>
2、函数的使用:
---通过访问函数的名字+();如果函数在定义时有参数,那么在调用的时候就必须传入对应的参数;函数是一种结构,不会自动运行,必须通过调用才可以
---函数的调用可以在函数的定义之前
1 示例: 2 <?php 3 yb(); 4 ?>
3、函数执行的内存分析:
-
读取代码进入到代码段(编译:将代码编程字节码存储到内存)
-
根据代码逐行执行
-
原因:编译和执行是分开的,先编译后执行
3、函数命名规范
-
由字母,数字和下划线组成,不能以数字开头
-
驼峰法
除了左边第一个单词外,后面所有的单词都大写
-
下划线法
单词之间通过下划线连接,单词都是小写
-
在一个脚本中,函数不能重名
4、函数的参数
1、形参
-
形式参数,不具有实际意义的参数,是在函数定义时使用的参数
-
形参可以有多个,用逗号隔开
2、实参
-
实际参数,具有实际意义的参数,是在函数调用时使用的参数
-
传入的参数,可以是变量,也可以是直接的值,或者算符计算结果
-
实参可以比形参多(不会报错,函数内部不用而已),但不能比形参少
-
形参是实参的载体:实参在调用时通常需要传入到函数内部参与计算,那么需要在函数内部去找到实际数据所在的位置才能找到数据本身,需要实际调用的时候,将数据以实参的形式传递给形参,给形参赋值,从而使得函数内部可以用到外部数据
1 示例: 2 <?php 3 function add($a,$b){ 4 echo $a+$b; 5 } 6 $c=10; 7 add($c,20); 8 ?> 9 //结果:30
3、默认值
形参的默认值:在函数定义的时候,就给形参一个初始赋值,如果调用的时候,没有实参,就用默认值
【注】:默认值的定义是放在最后边的(多个),不能在左边形参有默认值,但是右边没有
函数外部定义的变量名字与函数定义的形参是没关系的
1 示例: 2 <?php 3 $num1=10; 4 function jian($a=0,$b=0){ 5 echo $a-$b; 6 } 7 jian($num1); 8 ?> 9 //结果:10
4、引用传递
---实参在调甲寸会将值赋值给形参,那么实际上使用的方式就是一种简单的值传递:将实参(如果是变量或者常量或者其他表达式)的结果(值)取出来赋值给形参:形参与外部实际传入的参数本身没有任何关联关系:只是结果一样。
---有的时候,希望在函数内部拿到的外部数据,能够在函数内部改变,那么就需要明确告知函数(定义时),函数才会在调用的时候去主动获取外部数据的内存地址。以上这种定义形式参数的方式叫作引用传值
【注】:在传入实参的时候,必须传入变量
基本定义语法:在形参前加&
1 function 函数名(形参1,&形参2){ 2 //函数体 3 }
在调用的时候,必须给引用传值的参数位置传入实际参数,而且参数本身必须是变量(变量才有指向的数据的内存地址)
1 示例: 2 <?php 3 function display($a,&$b){ 4 $a=$a*$a; 5 $b=$b*$b; 6 echo $a,'<br/>',$b,<br/>; 7 } 8 $a=10; 9 $b=5; 10 display($a,$b); 11 echo $a,'<br/>',$b,<br/>; 12 ?> 13 14 //结果: 15 100 16 25 17 10 18 25