函数基础函数的定义: 形式:function 函数名(【形参一】,【形参二】.....){ //函数体。。。。。 } 说明: 1.定义时使用的形参,其实就是一个变量——只能在该函数内部使用的变量 2.形参作为变量,其实名字是“自己定义”——自然应该遵循命名规范 函数的调用:函数名($实参一,$实参二) 说明: 1.形参因该跟调用的函数的形式“一一对应”; 2.实参就是“数据值”,可能是直接值(比如5,”123”),也可能是变量值(比如$v1) Function f1($X,$Y){ $s=$X+$Y; $result=sqrt($s); //对其开方 Return $result; } 函数调用详细过程 1.首先,经函数调用时的实参数据,传递(赋值),给函数的形参(变量)。 2.程序的执行流程,进入到函数内部——此时可以认为是一个跟外界“隔离”的“独立运行空间” 3.在函数内部,按正常流程循序,执行其中的代码; 4.指导汉书结束,则突出该运行空间,而返回到原来调用函数的位置,继续执行后续代码! 5.如果在函数内部执行过程中,有return语句,则也会立即终止函数,并返回到函数调用位置。 函数的参数问题函数形参的默认值问题我们可以给一个函数定义时的形参,辅助一个“默认值”,则这个函数调用的时候,该形参对应的实参,可以不给值。 Function f1($x=3,$y=4){ $s=$x+$y; Return $s; } $v1=f1(30,40); //传过去两个值分别给x和y $v1=f1(30); //传过去一个值给x,自动获得y=4 $v1=f1(); //没有值传递过去,自动获得x=3,y=4 函数形参的默认值,可以只给部分形参设置默认值,但默认值的形参都要放在”右边”(后边): Function f2($x=3,$y=4,$z=’abc’){ $s=$x+$y; Return $s; } F2(1,2,’xyz’); F2(1,2,)’; F2(1); F2(); //这种做法是错误的 形参的传值问题一句话:形参的传值问题,其实就是“变量之间的传值问题”: 无非就是实参变量,船只给形参变量的问题。 即: 此时也同样有两种传值方式: 值传递: 这是默认值,如果没有特别设定,参数传值都是值传递。 引用传递: 需要在形参的前面加&符号。 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsFBD0.tmp.jpg 函数参数的数量问题1.通常,函数调用时的实参数量,应该跟函数定义是的形参数量保持一致。 2.如果函数定义是,形参有默认值,则对应的实参就可以进行一定程度的省略: 注意:省略只能从右往左进行。 3.有一种定义和使用函数的特别形式(并不常见),他不定义形参,而实参任意给出。 其实,系统中也有类似的好书,比如: Var_dump($v1); Var_dump($v1,$v1,$v3); //ok 可见,该函数就可以接受人一个数的实参: 我们自己也可以定义这种函数:其实这种函数,依赖的是以下3个系统函数来获取相应的信息,一得到实参数据的处理: 1.func_get_args();//获取实参数据列表,成为一个数组 2.func_get_args($v1);//获取第$v1个实参数据,$v1从0开始算起 3.Func_num_args(); //获取实参的数量 函数的返回值1.一个函数,可以返回数据值,也可以不返回。需不需要返回数据值,由所需来决定。 2.如果需要返回值,则使用return语句,后面跟一个数据(可以使变量),就可以返回该数据 3.如果不需要返回值,在函数中可以没有return语句,或有return语句但是气候没有跟一个数据 4.return语句的作用,不管后面跟不跟数据值,都会立即终止函数的执行,返回到函数调用的位置并继续后续工作 函数的其它形式可变函数:一个变量后面带括号,则会被识别为可变函数,找到与该变量的值同名的函数并执行之。 Function f1(){ Echo “这就是一个普通海曙” } $v2=“f1”; $v2(); //这就是可变函数,在调用函数的时候,使用一个变量名而已,该变量的内部,就是该函数名 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsFBE0.tmp.jpg 匿名函数匿名函数就是没有名字的函数 有两种形式的匿名函数: 形式1:将一个函数名“赋值”给一个变量——此时该变量就代表匿名函数了 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsFBF1.tmp.jpg 形式二: 是直接将一个匿名函数,当作实参使用!——即调用别的函数的时候,是用一个匿名函数来当做实参,自然,在该函数A中,也就应该对该匿名函数当作一个函数来用。 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsFBF2.tmp.jpg
|