批改状态:合格
老师批语:写的不是很好!作业要认真对待!
<?php// 函数的声明与调用function study(){echo "小明读一年级";}// 调用输出study();

<?php// 函数的类型// 1.自定义函数,func为函数名,$a和$b为函数参数,需要在调用函数时, 提供相应的实参。function func($a, $b){echo $a+$b;}func(2,5) ;echo '<hr>';// 2. 系统函数,系统自带,无需定义直接使用;// 随机输出范围内的数字echo rand(1,100).'<br>';$t=time();echo (date("Y-m-d", $t));//3.可变函数function func2($a,$b){return $a +$b;};$sum ='func2';echo $sum(10,20);echo '<br>';echo func2(10,20);// 4.匿名函数 ,也叫具名函数,就是没有名字的函数,一般用于回调函数。//将一个没有函数名的函数赋值给一个变量$sum = function ($x, $y) {return $x + $y;};echo $sum(10, 20);
<?php// 函数的返回值// 1.通过return 返回值function sum($x, $y){$z = $x + $y;return $z;}echo "5 + 10 = " . sum(5, 10) . "<br>";echo "7 + 13 = " . sum(7, 13) . "<br>";echo "2 + 4 = " . sum(2, 4) . "<br>";echo "2 + 4 = " . sum(8, 2);//2.通过数组返回值function num(){return array(0, 1, 2);}list($zero, $one, $two) = num();//3.通过json返回字符串function demo(){$user_id = 1;$user_name = 'peter';return json_encode(['id' => $user_id, 'name' => $user_name]);}echo demo();// 输出:{"id":1,"name":"\u5f20\u4e09"}//也可以使用json_decode()转回数组;(不加第二个参数默认转换为对象)print_r(json_decode(demo(), true));//4.通过序列化方式返回字符串function demo2(){$user_id = 1;$user_name = 'peter';return serialize(['id' => $user_id, 'name' => $user_name]);}echo demo2();// 输出:a:2:{s:2:"id";i:1;s:4:"name";s:6:"peter";}//a表示数组,2个元素,//第1个元素键名为id为string类型,长度是2,值为int类型,长度是1//第2个元素键名为name为string类型,长度是4,值为string类型,长度是6// 反序列化: 还原print_r(unserialize(demo2()));
<?php// 函数参数// 1.一般参数function sum(float $x, float $y): float{return $x + $y;}//调用echo sum(10, 12);//输出:22//2.默认参数//函数声明:求两个参数的和function sum2(float $x, float $y = 20): float{return $x + $y;}//调用echo sum2(10);//输出:30//3.引用参数,添加取地址符&function sum3(float &$y): float{return $y *= 2;}$peter = 5;//在函数参数中引用变量$pecho sum3($peter);//函数内部对参数的更新会实时映射到外部实际参数$pecho $peter;//4.剩余参数// 例如:一个数量不固定的数求和,参数前面加...function func(...$number){//array_sum为数组求和函数return array_sum($number);}// 定义数组$arr = [2, 2, 2, 2, 2];// 无论数组有多少个,全部进行计算$num_sum = func(...$arr);echo $num_sum;
<?php// 函数的命名空间,命名空间一个最明确的目的就是解决重名问题,// PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。// 这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。namespace ns1 {function func(){return '我是ns1的func';}}namespace ns2 {function func(){return '我是ns2的func';}}// 全局空间: 匿名空间,默认空间namespace {function func(){}echo ns1\func();}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号