函数
- 函数就是一段代码块
- 函数可以实现模块化编程
- 可以多次调用
函数的定义
function 函数名(参数1,参数2,...){
//函数体
}
通过函数名()调用函数,
<?php
function show(){
echo '锄禾日当午<br>';
}
show(); //锄禾日当午
SHOW(); //函数名不区分大小写
?>
可变函数
<?php
function show($args){
echo $args,'<br>';
}
show('锄禾日当午');
?>
匿名函数
<?php
//匿名函数
$fun=function(){
echo '锄禾日当午';
};
//匿名函数调用
$fun();
?>
参数传递
函数的参数有形式参数和实际参数
- 形参是定义函数时候的参数,只起形式的作用,没有具体的值
- 实际参数的调用函数的时候的参数,有具体的值
<?php
function fun($num1,$num2){
echo $num1+$num2;
}
fun(10,20); //30
默认情况下,参数的传递是值传递
<?php
$num=10;
function fun($args){
echo $args=100,'<br>';
}
fun($num); //100
echo $num; //10
?>
地址传递
<?php
$num=10;
function fun(&$args){
//地址传递
echo $args=100,'<br>';
}
fun($num); //100
echo $num; //100
?>
参数的默认值
- 在定义函数的时候给形参赋值就是参数的默认值
<?php
function fun($name,$add='地址不祥'){
echo '姓名:'.$name.'<br>';
echo '地址: '.$add.'<hr>';
}
fun('tom','北京');
fun('berry');
?>
2. 默认值必须是值,不能用变量代替
<?php
$str='地址不详';
function fun($name,$add=$str){
//错误
echo '姓名:'.$name.'<br>';
echo '地址: '.$add.'<hr>';
}
fun('berry');
?>
- 默认值可以使用常量
<?php
define('ADD','地址不详');
function fun($name,$add=ADD){
//默认值可以使用常量
echo '姓名:'.$name.'<br>';
echo '地址: '.$add.'<hr>';
}
fun('berry');
?>
- 有默认值得写在后面,没有默认值得写在前面
参数个数不匹配
<?php
function fun($num1,$num2){
echo $num1,'<br>';
echo $num2,'<br>';
}
//fun(10); //实参少于形参(报错)
fun(10,20,30);//实参多余形参,只取前面对应的值
?>
获取所有传递的参数
<?php
function fun(){
//echo func_num_args(),'<br>'; //func_num_args获取参数的个数
$args=func_get_args(); //获取参数数组
print_r($args);
}
fun(10);
fun(10,20);
fun(10,20,30);
参数约束
- 定长变长参数
...$hobby包含了除了前面两个参数以外的所有参数
<?php
function fun($name,$age,...$hobby){
echo '姓名:'.$name.'<br>';
echo '年龄:'.$age.'<br>';
print_r($hobby);
echo '<hr>';
}
fun('tom',22);
fun('berry',23,'吃饭','睡觉');
?>
2. 参数类型约束
<?php
function fun(string $name,int $age){
//约束$name是字符串类型,$age是整型
echo '姓名:'.$name.'<br>';
echo '年龄:'.$age.'<br>';
}
fun('tom',22);
?>
return
1.终止脚本执行
<?php
echo '你好<br>';
return; //终止脚本执行
echo '你好'; //不执行
?>
return 只能中断当前页面,如果有包含文件,只能中断包含文件
如果要完全终止使用:exit(),或die()
- 返回页面结果
1.php
<?php
return array('name'=>'tom','age'=>'18');
?>
2.php
<?php
$stu=require'./1.php';
print_r($stu);
?>
结果
3. 函数的返回和终止
return在函数中使用作用有
- 终止函数执行
<?php
function fun(){
echo 'aaa';
return; //终止执行函数
echo 'bbb';
}
fun(); //aaa
?>
- 返回值
<?php
function fun(){
return 100;//返回值
}
echo fun(); //100
?>