<?php
// 函数语法
// 声明函数 function 名称(参数){函数体 return 返回值;}
function function1(int $a,int $b):string{
return $a+$b;
}
echo function1(10,5);
function function2(int $a,int $b){
return $a+$b;
}
// 调用函数
echo function2(10,5);
?>
<?php
// 函数分类
// 1、自定义函数
function function1(int $a,int $b):string{
return $a+$b;
}
echo function1(10,5);
echo '<hr>';
// 2. 系统函数
$array=[13,28,68,36];
// count()计算数组元素个数或对象属性个数
echo count($array);
echo '<hr>';
$str='因你而美丽';
// substr(字符串,start,length)获取英文字符串一部分;mb_substr获取中文字符串一部分
echo mb_substr($str,3,2);
echo '<hr>';
// 3、可变函数 函数赋值于一个变量,通过调用变量调用函数
$sum='function1';
echo $sum(10,5);
echo '<hr>';
// 4. 匿名函数: 闭包, 可以访问父作用域的变量
$c=4;
$sup=function (int $a,int $b):string{
return ($a+$b);
};
echo $sup(4,3);
echo '<hr>';
$sup=function (int $a,int $b)use($c):string{
return ($a+$b)*$c;
};
echo $sup(4,3);
// 父作用域是函数
$sub=function($c){
return function (int $a,int $b)use($c):string{
return ($a+$b)**$c;};
};
echo $sub(3)(2,3);
?>
<?php
// 返回值
// 原则: 单值返回
// 如果需要返回多值
// 1. 字符串拼装
function function1(){
$num=1;
$bool='ture';
return $num.':'.$bool;
}
echo function1();
echo '<br>';
// 适合处理大量的php+html混写
// 这种返回的格式是用户自定义的,前端处理非常麻烦
// 2. 数组
function function2(){
return [ 'num'=>1,'bool'=>'ture'];
}
print_r(function2());
echo '<br>';
echo function2()['num'].':'.function2()['bool'];
echo '<br>';
// 3. JSON字符串
function function3(){
return json_encode([ 'num'=>1,'bool'=>'ture']);
}
print_r(function3());
echo '<br>';
print_r(json_decode(function3()));
echo '<br>';
// 4. 序列化: 字符串
function function4() : string
{
return serialize(['num'=>1,'bool'=>'ture']);
}
echo function4();
echo '<br>';
print_r(unserialize(function4()));
?>
<?php
// 函数参数
// 1. 值参数
// 2. 引用参数
// 3. 默认参数
// 4. 剩余参数
// 1. 值参数, 默认
function per1($a){
return $a=$a**2;
}
$b=2;
echo per1($b).'<br>';
// 2. 引用传递
// 被调用参数值随形参而变化
function per2(&$a){
return $a=$a**2;
}
$b=2;
echo per2($b).'<br>';
echo $b.'<br>';
// 3. 默认参数
function per3($a,$b,$c=':'){
return $a.$c.$b;
}
echo per3('peter','15').'<br>';
function per4($a,$b,$c){
switch($c){
case ':':return$a.':'.$b;
break;
case '---':return$a.'---'.$b;
break;
case '***':return$a.'***'.$b;
break;
default:return'非法操作符';
}
}
echo per4('jack','11','***');
echo "<br>";
// 4. 剩余参数
// 收集
function sum(...$numbers){
return array_sum($numbers);
}
echo sum(1,5,37,5,4);
// 展开
$array=[2,4,6,7,3,9];
print_r(sum(...$array));
?>
总结:回头看这些知识,比当时刚学的时候强很多,但完全不看课件独自完成还是做不到的。但依然充满信心充满动力,因为一个月前的自己还不知道世界上有这么些个东东,从无到有,从小白到似懂非懂,很感谢自己的努力和坚持,很感谢老公的引道和陪伴,更感谢老师得辛苦付出。课程结束以后还有问题的话,希望老师依然能细心解答。谢谢啦!