PHP:函数的定义与调用

1、初识函数

* 函数:封装一段用于完成特定功能的代码。
* 通俗理解函数:可以完成某个工作的代码块,就像小朋友搭房子用的积木一样,可以反复使用,在使用的时候,拿来即用,而不用考虑它的内部构成。

函数分类:①内置函数(字符串操作函数、数组操作函数)②自定义函数

  • 内置函数
	$str = 'ABcd';
	$upper = strtoupper($str);		// 调用strtoupper()函数将$str转换成大写
	$lower = strtolower($str);		// 调用strtolower()函数将$str转换成小写
	echo $upper;			// 输出结果:ABCD
	echo $lower;			// 输出结果:abcd
  • 自定义函数
      函数的定义由以下4部分组成:
      关键字function
      函数名functionName
      参数
      函数体
    
	function 函数名([参数1, 参数2, ……]){
	    函数体……
	}

各部分说明

	function:在声明函数时必须使用的关键字
	函数名:要符合PHP的标识符,且函数名是唯一的,不区分大小写
	[参数1, 参数2…]:外界传递给函数的值,它是可选的,多个参数之间使用逗号“,”分隔。
	函数体:函数定义的主体,专门用于实现特定功能的代码段。
	返回值:需要使用return关键字将需要返回的数据传递给调用者。

2、参数设置

  • 对于函数来说,参数的不同设置,决定了其调用和使用方式。
	function shout()
	{
	    return 'come on';
	}
	echo shout();// 输出结果:come on
	//适用于不需要提供任何的数据即可以完成指定功能的情况。
  • PHP默认支持按值传递参数,按此种方式定义的函数,在函数内部可以随意对用户传递的参数进行操作。
	function add($a, $b){
	    $a = $a + $b;
	    return $a;
	}
	// 方式一
	echo add(5, 7);
	// 方式二
	$x = 5;
	$y = 7;
	echo add($x, $y);	
  • 在开发中,若需要函数修改它的参数值,则需通过函数参数的引用传递。实现方式只需在参数前添加“&”符号即可。
	function extra(&$str){
	    $str .= ' and some extra';
	}
	$var = 'food';
	extra($var);
	// 输出结果:food and some extra
	echo $var;
  • 函数参数在设置时,还可以为其指定默认值,也就是可选参数。当调用者未传递该参数时,函数将使用默认值进行操作。
	//注意:当使用默认参数时,默认参数必须放在非默认参数的右侧,否则函数可能出错。
	function say($p, $con = 'say "Hello"'){
	    return "$p $con";
	}
	echo say('Tom');
	// 输出结果:Tom say "Hello"
	//注意:当使用默认参数时,默认参数必须放在非默认参数的右侧,否则函数可能出错。
  • 在PHP 7.0及以上的版本后,在自定义函数时,可以指定参数具体是哪种数据类型。
	function sum1(int $a, int $b){
	    return $a + $b;
	}
	echo sum1(2.6, 3.8); // 输出结果:5
	当用户调用函数时,如果传递的参数不是int类型,程序会将其强制的转换为int型后,再进行操作,这种方式称为弱类型参数设置。
	除此之外,还可以将其设置为强类型的参数,即当用户传递的参数类型不符合函数的定义,程序会报错提醒。
	declare(strict_types = 1);
	function sum2(int $a, int $b){
	    return $a + $b;
	}
	echo sum2(2.6, 3.8); // 输出结果:Fatal error: ......

3、 变量的作用域

变量在定义后的默认情况下,函数中可以使用,函数外不可以使用。
解析:变量只有在其作用范围内才可以被使用,这个作用范围称为变量的作用域。
在函数中定义的变量称为局部变量
在函数外定义的变量称为全局变量
	function test(){
	    $sum = 36; 	// 局部变量
	    return $sum;
	}
	$sum = 0; 	// 全局变量
	echo test();   	// 输出结果:36
	echo $sum;          	// 输出结果:0
  • 在函数中使用全局变量:参数传递,global关键字和超全局变量$GLOBALS。

你可能感兴趣的:(PHP)