批改状态:合格
老师批语:
<?php//作用域与闭包$name='小马';$age='18';function demo1():string{$res='';//函数内部访问不了外部成员//一下两种方法解决global $name;$res.='我的名字:'.$name.'<br>';$res.='我的年龄:'.$GLOBALS['age'].'岁<br>';//外部不能访问内部私有变量$email='8788@qq.com';//通过return访问$res.='我的邮箱:'.$email.'<br>';return $res;}echo demo1(),'<hr>';//2.闭包也叫匿名函数$demo2=function()use($name,$age){return sprintf('我的名字叫:%s<br>我的年龄是:%s岁<br>',$name,$age);};echo $demo2(),'<hr>';//引用传参$demo3=function($myname) use (&$name){$name=$myname;};$demo3('小明');echo '当前我叫'.$name.'<br>';//应用场景function demo4($site){return function($name)use($site){return sprintf('%s:%s',$site,$name);};}echo demo4('我现在叫')('小红');
<?phpfunction demo1(string $name):string{return "hello $name !"}echo demo1('小马'),'<hr>';//异步调用//传入单个参数echo call_user_func('demo1','小明'),'<hr>';//传入多个参数数组echo call_user_func_array('demo1',['小红'])//调用对象方法class Arr{public function im(string $name):string{return "我叫 $name ";}public static function age(string $site):string{return "我今年 $site 岁";}}$res=call_user_func_array([new Arr,'im'],['小马']);echo $res,'<br>';$res=call_user_func_array('Arr::age',['18']);echo $res,'<hr>';
<?php//1.数组function demo1(): array{return ['age'=>17,'inform'=>'你已年满18'];}$res=demo1();echo $res['age']>=18?$res['inform']:'你没满18';echo '<hr>';//2.对象function demo2(): object{return new class(){public $name='小马';public $email='2999@qq.com';};}$user=demo2();printf('我叫%s,我的邮箱是%s',$user->name,$user->email);echo '<hr>';//3.序列化字符串//3.1只在PHP中用function demo3():string{return serialize(['sratus'=>1,'message'=>'验证成功']);}$set=demo3();echo $set,'<hr>';//还原$arr=unserialize($set);var_dump($arr);echo '<hr>';//3.2转为json通用型function demo4():string{return json_encode(['sratus'=>1,'message'=>'验证成功'],JSON_UNESCAPED_UNICODE);}$str=demo4();//还原成对象$res=json_decode($str);var_dump($res);//还原成数组$res=json_decode($str,true);var_dump($res);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号