函数

函数

  • 为完成某一功能的程序指令(语句)的集合
  • 函数分为自定义函数和系统函数

应用案例

  • 以计算器为例,我们求解两个数的加减乘除,常见代码如下:
<?php
	$number1=rand(0,100);
	$number2=rand(0,100);
	$res=0;
	$oper="+";
	switch($oper){
		case "+":
			$res=$number1+$number2;
			break;
		case "-":
			$res=$number1-$number2;
			break;
		case "*":
			$res=$number1*$number2;
			break;
		case "/":
			if($number2==0){
				echo "不能为0";
			}else
				$res=$number1/$number2;
			break;
		default:
			echo "符号不符合规则!!!";
	}
	echo $number1.$oper.$number2."=".$res;
	echo "<br/>";
	$number1=rand(0,100);
	$number2=rand(0,100);
	$oper="/";
	switch($oper){
		case "+":
			$res=$number1+$number2;
			break;
		case "-":
			$res=$number1-$number2;
			break;
		case "*":
			$res=$number1*$number2;
			break;
		case "/":
			if($number2==0){
				echo "不能为0";
			}else
				$res=$number1/$number2;
			break;
		default:
			echo "符号不符合规则!!!";
	}
	echo $number1.$oper.$number2."=".$res;
?>
  • 可见,当我们某个页面或者多个页面要多次用到相同的功能,代码的复用性差,如何改善呢?此时就要用到函数了。
    在这里插入图片描述
    在这里插入图片描述

函数案例

  • 函数的一般格式为:

    • function 函数名(形参1,形参2,…)
    • 通过return返回结果值
    • function是关键字
    • 引入函数使用require关键字
    • require ‘页面(.php)’;
  • 函数可包含在本页面内,此时不需要引入,直接使用。

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
	
	function calc($number1,$number2,$oper){
		$res=0;
		switch($oper){
			case "+":
				$res=$number1+$number2;
				break;
			case "-":
				$res=$number1-$number2;
				break;
			case "*":
				$res=$number1*$number2;
				break;
			case "/":
				if($number2==0){
					echo "不能为0";
				}else
					$res=$number1/$number2;
				break;
			default:
				echo "符号不符合规则!!!";
		}
		return $res;
	}
	
	$number1=rand(0,100);
	$number2=rand(0,100);
	$oper="+";
	$res=calc($number1,$number2,$oper);
	echo $number1.$oper.$number2."=".$res;
	echo "<br/>";
	$number1=rand(0,100);
	$number2=rand(0,100);
	$oper="/";
	$res=calc($number1,$number2,$oper);
	echo $number1.$oper.$number2."=".$res;
?>
</html>
  • 函数和使用此功能的页面在不同的页面时,需要使用require关键字来引入。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
	//引入函数,重点!!!
	require '3.php';
	
	$number1=rand(0,100);
	$number2=rand(0,100);
	$oper="+";
	$res=calc($number1,$number2,$oper);
	echo $number1.$oper.$number2."=".$res;
	echo "<br/>";
	$number1=rand(0,100);
	$number2=rand(0,100);
	$oper="/";
	$res=calc($number1,$number2,$oper);
	echo $number1.$oper.$number2."=".$res;
?>
</html>
<?php
	//函数前需要加function关键字
	//function 函数名(形参1,形参2,...)
	function calc($number1,$number2,$oper){
		$res=0;
		switch($oper){
			case "+":
				$res=$number1+$number2;
				break;
			case "-":
				$res=$number1-$number2;
				break;
			case "*":
				$res=$number1*$number2;
				break;
			case "/":
				if($number2==0){
					echo "不能为0";
				}else
					$res=$number1/$number2;
				break;
			default:
				echo "符号不符合规则!!!";
		}
		return $res;
	}
?>

php页面之间调用的方式

  • require()
  • require_once()
  • include()
  • include_once()
  • require的用法
	//第一种方式	
	require '3.php';
	//第二种方式:通过变量引入	
	$result="3.php";
	require $result;
	//第三种方式	
	require ('3.php');
  • require()和require_once()

    • 引入函数的语句一般放在最前面。php在执行前,就先读入require所引入的文件,一旦出错,则退出程序。
    • require()直接包含文件,require_once()会判断是否已经包含,是则不再包含,节省资源,避免重定义。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
	require '3.php';
	echo "<br/>";
	require '3.php';
?>
</html>
<?php
	echo "3.php";
?>

在这里插入图片描述

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
	require_once '3.php';
	echo "<br/>";
	require_once '3.php';
?>
</html>

在这里插入图片描述

  • include()和include_once()

    • 将一个页面包含到另一个页面
    • include()直接包含文件,include_once()会判断是否已经包含,是则不再包含,节省资源,避免重定义。
	//第一种方式	
	include '3.php';
	//第二种方式:通过变量引入	
	$result="3.php";
	include $result;
	//第三种方式	
	include ('3.php');
  • include()和require()的区别

    • require()一旦出错,则退出程序。
    • include()出错会继续执行。
  • 一般使用require_once()

  • 切记,对于函数应该先引入再使用!

global全局变量

  • 使用global关键字在函数里使用外面的变量。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
	function fun(){
		//在函数里使用外面的变量!!!
		global $num;
		$num+=50;
	}
	$num=10;
	echo '$num='.$num;
	echo "<br/>";
	fun();
	echo '$num='.$num;
?>
</html>

在这里插入图片描述

unset销毁变量

  • 为了防止全局变量的混乱,可以使用unset($var)来删除一个变量。
  • 销毁指定的变量。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
	function fun(){
		global $num;
		echo '$num='.$num;
		echo "<br/>";
		unset($num);
		echo '$num='.$num;
		echo "<br/>";
	}
	$num=10;
	echo '$num='.$num;
	echo "<br/>";
	fun();
	echo '$num='.$num;
?>
</html>

在这里插入图片描述

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<?php
	function fun(){
		global $num;
		echo '$num='.$num;
		echo "<br/>";
	}
	$num=10;
	echo '$num='.$num;
	echo "<br/>";
	unset($num);
	fun();
	echo '$num='.$num;
?>
</html>

在这里插入图片描述

函数默认值设定

  • function fun($var1=默认值,$var2=默认值…)

函数实参的传递方式

  • 值传递

  • 引用传递【地址传递】(&)

    • function fun(&$var1)
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页