批改状态:合格
老师批语:完成的不错
<?php// 自定义函数$number = 5;$name = ['zhao' , 'qian' , 'shun' ,' li' ,' chen' , 'wamg' ,'zhang'];function unit(int $number): string{// global连接全局变量global $name;$number = $name[$number-1];return $number;}// 调用函数echo unit(2);echo '<hr>';// 系统函数// 系统函数是已经定义好的函数,可以直接调用// 把二进制转换为16进制的函数echo bin2hex('chen') . '<hr>';// 获得当前工作目录echo getcwd();echo '<hr>';// 可变函数,使用变量名作为函数名// 当变量的后面有圆括号时,系统自动搜索是否有同名的函数并尝试调用它// 可以在实现回调函数,函数表应用$a = 'unit';echo $a(1);echo '<hr>';// 匿名函数:也叫闭包// 可以作为变量的值来使用// 'use':继承父级作用域中的变量。和命名函数中的'global'一样使用$name = ['zhao' , 'qian' , 'shun' ,' li' ,' chen' , 'wamg' ,'zhang'];$a = function ($number) use ($name): string{return $number = $name[$number-1];};// 直接用变量加参数调用echo $a(5);echo '<hr>';// 返回值 多个值的返回方式// 字符串拼装function unit1(): string{$number = 1;$name = 'xiaoming';return $number. '号是' . $name;}echo unit1();echo '<hr>';// 通过数组返回function unit2(): array{$number = 1;$name = 'xiaoming';$gender = 'man';return [$number , $name , $gender];}print_r(unit2());echo '<hr>';// JSON:json_encode()function unit3(): string{$number = 1;$name = 'xiaoming';$gender = 'man';// 也可以返回字符串:return json_encode($number);return json_encode([$number , $name , $gender]);}echo unit3();echo '<hr>';// 序列化:serialize()function unit4(): string{$number = 1;$name = 'xiaoming';$gender = 'man';// 也可以返回字符串:return serialize($number);return serialize([$number , $name , $gender]);}echo unit4();// 返回的都是字符串,只是显示的格式不一样,'JSON'和序列化需要解码echo '<hr>';// 参数// 值传递:默认// 只调用它的值在函数内部进行计算,不改变原始值。$work = 'php';function g($work){return $work = $work . '中文网';}$l = g($work);// 输出:php中文网echo $l;echo '<hr>';// 输出:phpecho $work;echo '<hr>';// 引用传递// 添加取地址符&,在改变函数内部的值时,所引用的原始值也一起被改变$work = 'php';function g1(&$work){return $work =$work . '中文网';}$l = g1($work);// 输出:php中文网echo $l;echo '<hr>';// 输出:phpecho $work;echo '<hr>';// 默认参数// 必须写在参数的最后面// 默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等function g2($c , $work = '中文网'){return $c . $work;}echo g('php');echo '<hr>';// 剩余参数// '...'参数归纳// 用在函数的形式参数列表中,表示"收集",将多个离散的参数打包到一个数组中处理function are(...$por):array{return $por;}print_r( are(1,2,3,4,5,6,7,8,9));echo '<hr>';// 用在函数的调用参数列表中,表示"展开",还原将一个数组展开成一个个离散的值$gpr = [1,2,3,4,5,6,7,8,9];function are2(...$gpr):array{return $gpr;}print_r(are2(...$gpr));
今天主要学习函数的组成
函数名称:命名的和匿名的,系统的和自定义的,可变的和不变的,以及globalhe use的用法
函数的返回值:返回的都是字符串,只是显示的格式不一样,’JSON’和序列化需要解码
函数传递参数的四种方式,分别是值传递、引用传递(&)、默认参数和剩余参数(…)。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号