Home  >  Article  >  php教程  >  php核心语法-函数的使用

php核心语法-函数的使用

WBOY
WBOYOriginal
2016-06-21 08:50:201264browse

 

函数:

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

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

抽象编程。

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

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

函数的基本语法:

定义函数的语法:

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);

 

 



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn