
批改狀態(tài):合格
老師批語:
參數(shù)類型可以是int,float,string,array,function等
1、 參數(shù)太少 可使用默認參數(shù) (參數(shù)從左往右求值)
function sum1(int $a, int $b, int $c = 10): int
{
return array_sum([$a, $b, $c]);
}
echo sum1(10, 20);
2、可以采用命名參數(shù),只支持php8.0以上版本
function sum2(int $a, int $b, int $c = 10, int $d = 20): int
{
return array_sum([$a, $b, $c, $d]);
}
echo sum2(1, 2, d: 3);
3、參數(shù)太多 或者不確定參數(shù)的個數(shù) 在參數(shù)前加… 標識為可變參數(shù)實現(xiàn)參數(shù)聚攏
function foo($arg, ...$args)
{
var_dump($arg, $args);
}
foo(1, 2, 3, 4, 5);
function boo(...$args)
{
return array_sum($args);
}
echo boo(1, 2.3, 3, 4, 5);
引用參數(shù) &
在參數(shù)前面加上& 可以將值傳遞 變?yōu)橐脗鬟f,兩個變量指向同一個內(nèi)存地址
function hoo(&$a)
{
return $a += 10;
}
$a = 10;
echo hoo($a); //20
echo $a; //20
$x = 100;
$y = $x; //值傳遞
$x = 200;
echo $y;
// 函數(shù)的返回值 函數(shù)遇到return 后面的代碼會停止執(zhí)行,也就是多個return只執(zhí)行第一個。
function fn1()
{
return json_encode([‘code’ => 0, ‘url’ => ‘https: //www.baidu.com’], 320);
return ‘您好’;
}
格式function ($a){},可以把一個匿名函數(shù)當(dāng)做參數(shù)傳給另一個函數(shù)
$b = 10;
$boo = function ($a) use ($b) {
return $a *= $b;
};
傳統(tǒng)的調(diào)用
echo $boo(2);
func 把第一個參數(shù)作為回調(diào)函數(shù)調(diào)用回調(diào)匿名函數(shù)
echo call_user_func(function ($a) use ($b) {
return $a *= $b;
}, 2);
call_user_func($boo, 2);
命名函數(shù)
function boo(...$args)
{
return array_sum($args);
}
echo boo(1, 2.3, 3, 4, 5);
回調(diào)一個命名函數(shù)
echo call_user_func(‘boo’, …[1, 2.3, 3,]);
echo call_user_func_array(‘boo’, [1, 2.3, 3]); //展開
回調(diào):在主線程執(zhí)行的過程中,突然跳到預(yù)先設(shè)置好的函數(shù)中去執(zhí)行的函數(shù)
php單線程 同步執(zhí)行 ,如果遇到耗時的函數(shù)會發(fā)生阻塞,應(yīng)該將它改為異步回調(diào)來去執(zhí)行
遞歸函數(shù) recursion 是指直接或間接地調(diào)用函數(shù)自身的函數(shù),必須有一個終止處理或計算的準則
function demo($a = 1)
{
if ($a <= 5) {
echo “第{$a}次執(zhí)行” . PHP_EOL;
$a++;
demo($a);
}
}
demo();
delete_dir_file 刪除指定目錄
params: 指定需要刪除的目錄路徑
return:返回布爾值 成功true 失敗false
謹慎調(diào)用 目錄會被永久刪除 記得備份
因為異步函數(shù)少了await,浪費了好多調(diào)試時間;函數(shù)部分比較簡單,跟老師敲了一遍,有時間再細看吧;匿名函數(shù)可以作為變量賦值;在js里朱老師講回調(diào)函數(shù)不會釋放變量,有些場景可以用來存儲變量不會相互污染,比如投票;PHP中不存在變量向內(nèi)可用的問題,所以應(yīng)該跟js的意義不同。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號