批改状态:合格
老师批语:学过js,这些都是小儿科了
//function 后边函数名称(类型限定 参数列表) : 返回值类型function user(string $name) : string
//参数可以多个,用','隔开function user(string $name, int $age): string{return $name . $age;}echo user('jack', 30);//输出jack 30
//user 为函数名function user(string $name, int $age): string//用函数名调用echo user('jack',30);
//把函数赋值给变量$user$user = function (): string{return 'jerry';}//用变量调用echo $user();
function user(string $name): string{return $name ;}//调用的时候参数必须输入echo user('jack');
function user(string $name,int $age = 18): string{return $name .$age;}//$age设定了默认值,调用的时候可以不输入,如果输入则替换默认值echo user('jack');
//在不去定参数的情况下可以用...rest语法,把参数压到数组中function user(string ...$arr): string{//数组求和return array_sum($arr);}echo user(1, 2, 3, 4, 5);
$age = 30;function man(int &$age): string{$age = 100;return $age;};echo man($age), '<br>';//因为$age被引用,函数内的$age值改变了全局的$age,输出$age = 100echo $age;
$name = 'jack';$age = 30;function user(): string{//函数内部声明的变量外部不可见$gender = '男';//用关键字global来调用外部的变量global $name;//也可以用$GLOBALS直接调用return $name . $GLOBALS['age'];}echo user();
$name = 'jack';$age = 30;//匿名函数需使用use 来引入参数$user = function () use ($name, $age): string {return $name . $age;};echo $user();
//用'&'引入传参$user = function ($myname) use (&$name): string {return $name = $myname;};//改变$myname的值为jerryecho $user('jerry');//$name的值也更新为jerryecho $name;
function user($name){return function ($color) use ($name): string {return sprintf('<h3 style="color:%s">%s</h3>', $color, $name);};}$closure = user('jerry');echo $closure('red');
use禁止使用以下三种参数
超全局不让用,如 $_GET
$this
function user(string $name): string{return printf('我叫 %s', $name);}//采用回调异步执行call_user_func_array('user', ['jack']);
function user(): array{return ['name' => 'jack', 'age' => '30'];}var_dump(user());
function man(): object{//创建一个匿名类返回return new class(){public $name = 'jack';public $age = 30;};}//把函数赋给一个变量$user = man();//使用变量调用var_dump($user);//调用对象中的一个元素echo $user->name;
function user(): string{return serialize(['name' => 'jack', 'age' => '30']);}//将函数的返回值赋给变量$user$user = user();//输出$userecho $user; //{"name":"jack","age":"30"}//用json_decode把返回值赋给变量$res$res = unserialize(user());//输出var_dump($res);//array(2) { ["name"]=> string(4) "jack" ["age"]=> string(2) "30" }
function user(): string{return json_encode(['name' => 'jack', 'age' => '30'], JSON_UNESCAPED_UNICODE);}//将函数的返回值赋给变量$user$user = user();//输出$userecho $user; //{"name":"jack","age":"30"}//用json_decode把返回值赋给变量$res$res = json_decode(user());//调用对象中的元素echo $res->name, $res->age;//默认是对象方式返回,如果使用数组方式返回json_decode()传入第二个参数 : true$res = json_decode(user(),true);var_dump($res);//输出:array(2) { ["name"]=> string(4) "jack" ["age"]=> string(2) "30" }
// 静态变量function demo1(){// 函数中的静态变量不会随函数调用结束而消失// 他会自动进入到下一次的函数调用中// 可以实现在函数的多次调用过程中:共享数据 / 数据通信static $i = 1;echo $i,'<br>';$i++;}// echo $i;echo demo1();echo demo1();echo demo1();echo demo1();echo demo1();

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号