批改状态:合格
老师批语:感觉能理解就好
//通过function关键字自定义了一个houMuch()函数function houMuch( int $money ,int $pay):int{return $money - $pay ;}echo houMuch(80,20);
$sty='php中文网原创视频。';//利用系统函数获取字符串截取,获取字符串前五个字符//mb_substr( 要截取的字符串,起始位置,截取长度);echo mb_substr( $sty,0,5);
function houMuch( int $money ,int $pay):int{return $money - $pay ;}//把函数名称 放在一个变量里,调用变量名。$str = 'houMuch';echo $str( 100 ,20);
$zhekou = 0.9;//通过use关键字来访问函数外部的全局作用域$houMuch= function ( int $money ,int $pay) use ($zhekou):int{return $money - ($pay>=500?$pay * $zhekou : $pay) ;};echo '剩余金额:'. $houMuch(2000,300) ;//如果父作用域也是一个函数$houMuch = function($zhekou=0.9){//子作用域可继承父作用域的变量return function ( int $money ,int $pay) use ($zhekou):int{return $money - ($pay>=500?$pay * $zhekou : $pay) ;};};echo '剩余金额:'. $houMuch(0.5)(2000,500) ;
// 适合处理大量的php+html混写// 这种返回的格式是用户自定义的,前端处理非常麻烦function user():string{$name= '毛毛';$age = 19;return $name .':'. $age.'岁' ;}echo user();
function demo1 (): array{return ['name'=>'毛毛','age'=>20] ;}//通过printf()格式化打印数据//%s占位符printf('<pre>%s</pre>',print_r(demo1(),true));
通过JSON返回:
json:是用js对象字面量 的方式来表示数据,是一种轻量级通用的数据交换或传输格式
json本质上就是一个具有一定结构和格式的字符串,不过这种格式得到了公认,几乎所有编程语言都支持它的借口
function demo2 (): string{// json_encode()将php数据编码为json格式的字符串返回return json_encode(['name'=>'毛毛','age'=>20]) ;}//将json格式的字符串还原为php对象/数组//json_decode(); 默认返回一个Object对象类型,第二个参数为true时, 返回一个数组类型print_r(json_decode(demo2()));echo '<br>';print_r(json_decode(demo2(),true));
function demo3 (): string{//通过serialize()序列化数组return serialize(['name'=>'毛毛','age'=>20]) ;}echo demo3();// 通过unserialize();反序列化才可以使用// echo unserialize(demo3());// echo print_r(unserialize(demo3()),true);printf('<pre>%s</pre>',print_r(unserialize(demo3()),true));
function demo1(float $a){return $a *= 2;}$value = 100;echo demo1($value).'<br>';//在函数中改变了调用参数的值,但原始调用参数并没有发生变化echo $value;
//如果在参数前面使用了取地址符“&”,则会改变原始调用参数的值function demo2(float &$a){return $a *= 2;}echo demo2($value).'<br>';echo $value;
//默认参数必须写在必选参数的后面function demo3(float $a ,float $b , string $opt = '+'){$c = 0 ;switch ( $opt) {case '+':$c = "$a + $b =".($a + $b) ;break;case '-':$c = "$a - $b =".($a - $b) ;break;case '*':$c = "$a * $b =".($a * $b) ;break;case '/':$c = "$a / $b =".($a / $b) ;break;default:$c = '非法操作符';}return $c;}echo demo3(10,20).'<br>';echo demo3(10,20,'/').'<br>';echo demo3(10,20,'#').'<br>';
function demo4(float $a ,float $b , float $c):float{return $a+ $b+ $c;}echo demo4(1,2,3).'<br>';function demo5(){//参数数量// return func_num_args();// 根据索引返回指定的调用函数//return func_get_arg(2);//返回一个数组//return func_get_args();$c = 0;for ($i=0; $i <func_num_args(); $i++) {$c += func_get_arg($i);}return $c;}function demo6(){$c = 0;foreach (func_get_args() as $value) {$c += $value;}return $c;}// echo demo5(1,2 ,3,4,8,7,9);// print_r(demo5(1,2,3,4,5));echo demo5(2,2,10).'<br>';echo demo6(2,2,10,10).'<br>';echo '<hr>';//使用剩余参数简化// “ ... ”参数归纳符function demo7(...$str):float{// array_sum(): 参数相加, array_product() :参数相乘return array_sum($str);// return array_product($str);}echo demo7(2,2,10,10).'<br>';$arr = [10,20,30,40,50,60];print_r(demo7(...$arr));/*“ ... ”1.用在函数形式参数列表中,表示收集,将多个离散的参数打包到一个数组中处理2.用在函数的调用参数列表中,表示展开,还原将一个数组展开成一个个离散的*/
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号