PHP中的自定义函数

一、自定义函数的基础

自定义函数是指程序员根据自身业务需要分装的,可以重复使用的代码段。

1. 优点:一次定义,可以多次使用。

定义方式:

function functionName ( ){

代码段;

}

functionName ( ) ; // 调用函数

2. 函数名称命名规则:

必须以字母或下划线为开头

函数名称必须必须遵守 ” 驼峰标记法 “ 。 //小骆驼

PHP中的所有函数都具有全局作用域。

PHP不支持函数重载,也不可能取消定义或者重定义已经声明的函数。

[ $ 变量名称 = ] functionName ( [ value , ... ] )

函数的执行结果,可以直接输出,可以将返回值赋给变量继续使用。

二、变量作用域

1. 局部变量:在函数内部中定义的变量,它的作用域是在函数定义范围内。

2. 全局变量:在函数外部定义的变量,在函数中使用时必须声明为 global 。

全局变量的作用域从定义处一直到文件的结尾。

使用$GLOBALS 替换 global 。

可以在函数体内改变变量的变量值。

3. 超全局变量:$GLOBALS为超全局变量。函数体内外都可直接调用。

$GLOBALS [ ' name ' ] ;

三、函数的参数

1. 通过参数可以传递信息到函数的内部

一个函数可以有零个或多个参数,多个参数之间用逗号作为分隔符。

参数的数据类型可以作为任意数据类型(资源除外)。

有些函数可以带有参数,但这个参数有可能会存在默认值。有默认值的参数称为可选参数,没有默认值的参数称为必选参数。

默认参数必须放在任何必选参数的右侧。因为参数在传递时,按照从左往右的顺序依传递,调用函数时,必选的参数一定要赋值,否则会报错。

2. 自定义函数的形参和实参

形参:在定义函数时的参数

实参:在调用时函数的参数

实参和形参在数量上、类型上、顺序上应严格一致。

function sun($var1,$var2 //形参){

return $var1 + $var2 ;

}

echo sum(3,5 //实参);

四、传递参数

1. 按值传递:直接传递参数值,也可以是变量。会在函数内部改变参数的值,但它并不会改变函数外部的值。

$a = ' imooc ' ; 将$a传递给$b $b = $a ; 当$b的值改变时 $b = ' hello ' ; $a是不会发生改变 $a = ' imooc '。

2. 引用传值:引用传值必须在参数的前面加上&符号。

引用传值的参数值只能是变量

引用传值会改变函数外部的值

引用指向原始变量

$foo = ' bob ' ; $bar = &$foo ;

$bar:理解为$foo的别名,与$foo指向同一个空间,修改任意一个变量,引向的变量值也会改变。

示例1:

$foo = ' mooc ' ;

$bar = &$bar ;

unset ( $foo ) ; 销毁变量,并没有销毁mooc,还有另一个变量指向mooc 。

echo $bar ; 输出为mooc

示例2:

下面这种传值方式是:按值传递,只影响函数内部的值。

function fun1( $n ) {

$n++ ; //局部变量

}

$n = 3 ; //全局变量

fun1 ( $n ); //此时参数为$n的时候,外部$n的值跟内部$n一起变化。

echo $n ;

注意:函数内部的$n是一个局部变量,外部的$n是局部变量,他们相互独立,并不指向同一块内存。

总结:1.引用复制实质上是指将变量的空间地址赋给另一个变量。如此,两个变量指向了同一块地址空间,对两个变量的操作都是是对这块空间的操作。

示例3:

$a = ' imooc ' ;

$b = &$b ;

$b ---- xxx(按xxx寻址,最终指向$a的空间)---- imooc ---- $a

$a是通过地址路径xxx找到imooc ,$a ,$b 操作的都是同一块空间。

五、可变数量的参数

可变数量是指参数的数目是不定的,PHP的自定义函数中支持可变数量的参数。

在PHP5.5及更早的版本中,使用函数func_num_args( ) , func_get_arg( ) , 和 func_get_args( ) 实现。

在PHP5.6及以上的版本中,由。。。语法实现;

func_get_arg( ) 获取传递给函数的参数列表的某一项

func_get_args( ) 获取一个包含传递给函数的参数列表的数组

func_num_args( ) 获取传递给函数的可变参数数量

array_sum( ) 对数组中的所有值求和

六、 自定义函数的返回值

1. return语句将立即中止函数的运行,并且将控制权交回调用该函数的代码段

function fun1( ) {

retrun ' hello ' ; // 返回Hello 给 fun1 ()

}

echo fun1 ( ) ; //输出fun1 函数的返回值

2. 如果省略return语句,则返回值为NULL

3. 返回值可以是包括数组和对象的任意类型(资源除外)

4. 函数的返回值只能有一个

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171212G10EDT00?refer=cp_1026

相关快讯

扫码关注云+社区