PHP之函数

​ 函数就是可以完成某个工作的代码块,在使用的时候,拿来即用,而不用考虑它的内部组成。PHP函数可以分为两类,一类是内置函数,即PHP自身的函数,只需要根据函数名调用即可。另一类是自定义函数,就是由用户自己定义的、用来实现特定功能的函数。

定义和调用函数

​ 创建函数的基本语法格式为:

<?php
    function fun_name($str1,$str2,$strn){
    
    
    	fun_body;
	}
?>

参数说明如下:

  • function:为声明自定义函数时必须使用到的关键字
  • fun_name:为自定义函数的名称
  • $str1 ... $strn:为函数的参数
  • fun_body:为自定义函数的主体,是功能实现部分

当函数被定义好后,,所要做的就是调用这个函数。调用函数的操作十分简单,只需要引用函数名并赋予正确的参数即可完成函数的调用。

代码示例:

<?php
    // 声明自定义函数
    function example($num){
    
    
    	echo "$num * $num = ".$num * $num;
	}
	example(10);
?>

运行结果:

10 * 10 = 100;

在函数间传递参数

​ 参数传递的方法有按值传递、按引用传递默认参数三种。

按值传递方式

​ 按值传递方式是最常用的的参数传递方式,即将调用者括号内的值依次传递给函数括号内的值。

代码示例:

<?php
    # 按值传递
	function test($num1,$num2,$num3){
    
    
		echo '$num1 是:'.$num1."<br>";
		$num1++;
		echo '$num2 是:'.$num2."<br>";
		echo '$num3 是:'.$num3."<br>";
	}
	
	$num1 = 1;
	$num2 = 2;
	$num3 = 3;
	# 调用自定义函数
	test($num1,$num2,$num3);
	echo "<br>";
	
	echo '$num1 是:'.$num1."<br>";
	echo '$num2 是:'.$num2."<br>";
	echo '$num3 是:'.$num3."<br>";
?>

运行结果:

$num1 是:1
$num2 是:2
$num3 是:3

$num1 是:1
$num2 是:2
$num3 是:3

按引用传递方式

​ 按引用传递就是将参数的内存地址传递到函数中。这时,在函数内部的所有操作都会影响到调用者参数的值。使用引用传递方式传值时只需在源基础上加”&“即可。

代码示例:

<?php
    # 按引用传递
	function test(&$num1,$num2,$num3){
    
    
		echo '$num1 是:'.$num1."<br>";
		$num1++;
		echo '$num2 是:'.$num2."<br>";
		echo '$num3 是:'.$num3."<br>";
	}
	
	$num1 = 1;
	$num2 = 2;
	$num3 = 3;
	# 调用自定义函数
	test($num1,$num2,$num3);
	echo "<br>";
	
	echo '$num1 是:'.$num1."<br>";
	echo '$num2 是:'.$num2."<br>";
	echo '$num3 是:'.$num3."<br>";
?>

运行结果:

$num1 是:1
$num2 是:2
$num3 是:3

$num1 是:2
$num2 是:2
$num3 是:3

默认参数(可选参数)

​ 默认参数也称可选参数,可选参数与必选参数的区别在于,声明函数参数时,需要为可选参数赋值;在调用函数时,可选参数可以赋值也可以不赋值,若不赋值,则参数使用声明时的值,若赋值,则参数使用新赋的值。

代码示例:

<?php
    # 可选参数代码示例
	function test($price,$tax = 0){
    
    
		$price = $price + ($price * $tax);
		echo "价格:$price<br>";
	}
	
	# 调用自定义函数
	test(100,0.25);
	test(100);
?>

运行结果:

价格:125
价格:100

从函数中返回值

​ 调用函数时可以向函数发送信息(参数),函数也可以向调用者发回信息(返回值)。从函数返回的值称为结果(result)或返回值(return value)。函数将返回值传递给调用者的方式是使用关键字return。return将函数的返回值返回给函数的调用者,即将程序的控制权返回到调用者的作用域。

代码示例:

<?php
    # 定义total()函数,计算商品总价
	function total($price,$number){
    
    
		$total = $price * $number;
		return $total;
	}
	
	$sum = 0;
	$phone = total(5000,2);
	$computer = total(8000,10);
	$sum = $phone + $computer;
	echo "合计".$sum."元";
?>

运行结果:

合计90000元

注:

  • return语句只能返回一个参数,即只能返回一个值,不能一次返回多个值。如果要返回多个结果,就要在函数中定义一个数组,将返回值存储在数组中返回。

变量作用域

​ 在编写代码时,虽然有些变量在函数之外,有些变量在函数之内,但它们必须在有效范围内使用,如果变量超出有效范围,变量也就失去其意义。

作用域 说明
局部变量 在函数的内部定义的变量,其作用域是所在函数
全局变量 被定义在所有函数之外的变量,其作用域是整个PHP文件,但在用户自定义函数内部是不可用的。如果希望在用户自定义函数内部使用全局变量,则要使用global关键字声明
静态变量 能够在函数调用结束后仍保留变量值,当再次回到其作用域时,又可以继续使用原来的值。而一般变量在函数调用结束后,其存储的数据值将被清除,所占的内存空间被释放。使用讲台变量时,先要用关键字static来声明变量,把关键字static放在要定义的变量之前

代码示例:

<?php
    $example = "在...函数外";
	function example(){
    
    
		$example = "...在函数内...";
		echo "在函数内输出的内容是:$example.<br>";
	}
	
	example();
	echo "在函数外输出的内容是:$example.<br>";
?>

运行结果:

在函数内输出的内容是:...在函数内....
在函数外输出的内容是:在...函数外.

猜你喜欢

转载自blog.csdn.net/qq_38768365/article/details/111567515