php核心语法-函数的使用

品味人生 • 发布于 2019-02-01 21:37:02

这个家伙很害羞,不想介绍自己!

函数:

指的是,具有某种功能的代码的集合。需要这个功能时,我们去执行(调用)相应的函数即可。

结构化编程,将功能都封装成一个个独立的结构。

抽象编程。

每次使用功能时,定义功能 。 转成 现将功能 制作成工具,然用时,使用工具就可以了。

函数必须先定义再使用。按照函数的定义者分成:系统函数和用户函数。

函数的基本语法:

定义函数的语法:

Function 函数名(参数) {

函数体


调用函数的语法:

函数名(传递到函数的参数).

函数的基本组成部分:

函数名 函数的标志

参数 函数执行时的一些数据参考

函数体(实现函数功能的代码块)

函数的返回值 (函数的执行结果,一个反馈信息)

定义:



调用:




其中的函数名部分,规则参考变量名命名规则即可,但是函数名不区分大小写。


但是注意 建议 怎么定义 怎么调用。


函数的参数部分:

形式参数:函数在定义是所使用的参数,就叫做形式参数。形式参数是没有具体值的。只有在调用时,才会被赋予某个值。简称 形参。




实际参数:函数在被调用时,会按照形式参数的规则,传递进来有实际意义的参数。此时就称之为实际参数,简称实参。



通常情况下,形式参数在函数别调用时,都是一值传递的方式,来获得实际参数的值。



与值传递相对,还有引用传递。

如果需要参数引用传递,需要在定义时,在形参前,增加引用符号 &.




此时 当调用 max3时:




当我们在函数体内修改 变量 x,y,z的值时,此时会对a,b,c产生不同的影响:





如果是参数占用很多资源, 为了提高效率,我们采用值还是引用? 引用。

并不是要求所以的参数都是或者不是某种传递方式,可以在参数上单独设置。



参数的默认值:

我们可以在定义函数时,为函数的参数,设置默认值。这样 当我们调用函数时,如果没有为这个参数传递数据,则使用默认值来代替。



函数的返回值:

函数是使用return语句标志返回值。

通常要求每个函数都有返回值,但是语法上 还是可以没有返回值。

当函数执行到 return语句时,函数运行结束。意味着 return语句后的所有函数体,都不需要再执行了。




一个函数可以有几个返回值?一个。

可以有几个return语句?多个。




一个函数通常只能有一个返回值,那么如果一个函数的功能要求 能够返回两个数据应该怎么办?怎么才能让一个函数同时影响两个值?

将两个值 给包装成一个集合类型的数据。

利用参数的引用传递,



Php的很多函数都是采用的引用传递达到 一个函数处理多个返回值的目的:


提示:如果参数是引用传递,则在调用时,必须是传递一个变量才可以。因为只有变量才能引用传递。




作用域问题:

变量的作用域,因为有函数 才会有作用域的划分。

当变量被定义后,在哪些代码中可以被使用。



某个变量是一定属于哪个作用域的。大家需要知道 php有哪些作用域:

全局作用域。 函数外属于全局作用域。在全局作用域定义的变量,在全局作用域内可见。

局部作用域。 函数内,就是某个函数形成局部作用域。在局部作用域内定义的变量是在局部可见的。

超级全局: 既可以在函数内,也可以在函数外。

在局部作用域 访问 全局作用域变量。需要使用关键字global,在某个局部作用域内,声明某个变量是全局的。




除了使用global关键字外,还可用如下的方法:

Php会将所有的定义的全局变量,都放入到一个数组中。这个数组是$GLOBALS(超级全局)。

其中 GLOBALS的每一个元素,就是一个全局变量,元素的下标,就是全局变量名,元素的值,就是变量值。




局部作用域 是在函数被调用时,才产生的。

同样 在函数 运行结束时,函数所产生的作用域随之消失,作用域内的所有变量应该消失。

全局作用域 是在php脚本运行时 就会产生。

在脚本运行结束时消失。全局作用域内的变量也应该消失。

在php内,支持局部作用域的静态变量。作用域也属于某个局部作用域。但是由于他是静态的,导致,在函数运行结束后,这个静态变量是不会消失,会保持住原来的处理好的值。




静态局部变量,只在当前函数的作用域内才生效。

简单小结一下:

普通全局: 函数外

普通局部: 函数内

超全局:   所有地方

静态局部: 当前函数内,函数运行结束不消失。可以在下次调用时再使用。

在局部使用全局: global  $GLOBALS[]


作业

参数的引用传递的作用?

完成杨辉三角:

第一列和对角线上的都是1,

除此之外,值为  = 头顶上的值+左肩上的值。

1

11

121

1331

14641

15101051

1615201561

定义成一个函数

Yanghui(7); 参数为行数。

Tip:利用双重循环 和 数组的操作可以完成


打印星星

要求定义一个函数 xingxing(4);