函数
- 为完成某一功能的程序指令(语句)的集合
- 函数分为自定义函数和系统函数
应用案例
- 以计算器为例,我们求解两个数的加减乘除,常见代码如下:
<?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)