一:函数定义
PHP中的函数定义和javascript中的函数定义非常相似
函数定义格式:function 函数名(参数1,参数2,参数3.......){ ...代码块... }

二:函数参数
形式参数:在函数声明的时候给的参数叫做形式参数,简称:形参
实际参数:在函数调用的时候给的参数叫做实际参数,简称:实参
function wirte($n){
for ($i=1; $i <$n ; $i++) {
echo "$i";
}
}
wirte(2);
//以上函数中声明函数是的$n为行参
//调用函数传的2是实参
参数的个数
1.实参>形参
2.实参=形参
3.实参<形参
4.形参设置了默认值
5.传参个数不确定
//1.实参>形参
function demo01($n,$m){
echo "\$n+\$m的结果是",$n+$m;
}
demo01(1,2,3,4);//$n+$m的结果是3
//2.实参=形参 完美状态
//3.实参<形参
function demo02($n,$m){
echo "\$n+\$m的结果是",$n+$m;
}
//demo02(1);//报错Uncaught ArgumentCountError: Too few arguments to function demo02() 参数太少无法执行
//4.形参设置了默认值
function demo03($n,$m=3){
echo "<br>";
return $n+$m;
}
echo demo03(1,2);//当函数形参设置了默认值
//如果调用函数没有传参给形参则使用形参的默认值
//如果调用函数传了实参给形参,此时形参就使用传过来的实参
//5.传参个数不确定
//可变参数列表:当传入的参数不确定的时候,这时候可以使用可变参数列表去获取数值
// func_exists 判断函数是否已经存在
// func_get_args($n) 获取函数调用的第几个实参
// func_get_args() 获取函数调用的所有实参
//案例:获取调用函数是传入参数的总值
function demo04(){
$allargs = func_get_args();
$num = 0;
for ($i=0; $i <count($allargs) ; $i++) {
$num+=(int)$allargs[$i];
}
return $num;
}
echo "<br>";
echo demo04(1,2,3,4,5);//15
三:函数返回值
<?php
// 返回单个数值
function demo06($m){
return $m;
}
echo demo06(1);
// 返回多个数值
function demo07($m,$n){
return array($m,$n);
}
var_dump(demo07(1,2));
?>
四:可变函数
<!-- 处理图片 -->
<?php
//可变函数,函数名是一个变量
$a = "wirte";
// $a(10);
//可变变量,变量名是一个变量
$a = 1;
$v = "a";
// echo $$v;
function jpg(){
echo "<br>处理jpg图片";
}
function gif(){
echo "<br>处理jpg图片";
}
function png(){
echo "<br>处理jpg图片";
}
$file = "";
if (isset($_GET["file_name"])) {
$file = $_GET["file_name"];//用户上传的文件名
$x = strrchr($file,".");
$img_type = substr($x,1);
echo "$img_type";
$img_type();
}
/*
string strrchr( string $haystack, mixed $needle)
该函数返回 haystack 字符串中的一部分,这部分以 needle 的最后出现位置开始,直到 haystack 末尾。
substr(字符串,开始索引,长度)
*/
?>
<form action="" method="GET">
<input type="file" name="file_name">
<input type="submit" value="上传">
</form>
来源:https://www.cnblogs.com/bai-boy/p/12175232.html