導航:首頁 > 編程語言 > php閉包參數

php閉包參數

發布時間:2023-09-07 11:04:44

1. php閉包函數用use傳參有什麼意義

PHP語法對於全局變數和局部變數分得太清楚,這里不討論它好與不好,但確實使用起來比較麻煩。在函數裡面調用全局變數,必須global聲明以後,才能使用,其它的語言貌似都能直接用。而use在這里的用法,就是解決這個問題的,有時候不但要傳參數進來,還要調用局部變數進行計算或判斷。舉個例子,你也許更明白:

<?php
functiongetMoney($cny){
$usd=6;//這個局部變數,想在閉包裡面用,必須放到use里
$func=function($jpy)use($cny){
echo$cny.'<br>';//10
echo$jpy.'<br>';//0.1
echo$usd;//否則就報錯,Undefinedvariable:usd
};
$func(0.1);
}
getMoney(10);

2. PHP的幾種函數參數類型及一些特殊函數

給你整理如下:

$array = func_get_args();

$count = func_num_args();

$value = func_get_arg();

3. Laravel 中的閉包參數是如何傳入的

親,你好,PHP中閉包參數的傳入是通過use關鍵字進行傳入的。Laravel 是PHP的一個框架,所以在裡面使用的閉包函數中傳入參數依然是使用use關鍵字的。

例如:

下面的PHP腳本程序運行結果如下:

Array
(
[0]=>
[1]=>Array
(
[name]=>xiaohong
[age]=>14
)
)

希望對你有幫助!~~

<?php
$users=[
['name'=>'xiaoming','age'=>15],
['name'=>'xiaohong','age'=>14],
];
$age=15;
//遍歷用戶信息,拿到年齡小於15的用戶信息
$ageLt15=array_map(function($user)use($age){
if($user['age']<$age){
return$user;
}
},$users);
print_r($ageLt15);

4. php如何序列化/存儲閉包(Closure)

實在需要序列化,可以用反射(Reflection),並直接操作代碼文件獲得上下文信息:/*** 創建一個反射:*/$reflection = new ReflectionFunction($closure);/*** 參數可以直接得到了:*/$params = $reflection-getParameters();/*** 獲得Closure的函數體和use變數,形如: * function($arg1, $arg2, ...) use ($val1, $val2, ...) { * // 要獲得這個部分的代碼!* }* 辦法很多,你可以直接用正則、字元串查找或者Tokenizer,等等等等。 * 比如可以先從reflection里得到函數的開始行和結束行:*/$startLine = $reflection-getStartLine(); $endLine = $reflection-getEndLine(); // 然後用str*這個,str*那個的函數來清理,細節不寫了:

5. php方法中如何獲取閉包的值

親,你好,很高興為你解答該問題

首先,你的這個寫法是有問題的哦!~

classA{
publicfunctionaa(){
//函數體為空,所以外面不會有任何輸出,即使設置變數來接受該方法,也不會有任何返回
//所以你肯定拿不到123
}
}
$a=newA;
$a->aa(function(){//aa方法是不接受任何參數的,這個傳了閉包進去
return123;
});

要想拿到閉包中的123,你需要這樣寫才可以呦~~

classA{
publicfunctionaa($closure){//aa方法接受一個閉包函數進來
return$closure(123);//調用閉包函數,傳入相應參數,並將閉包返回的值再次返回出去
}
}

$a=newA;
$b=$a->aa(function($param){//給aa傳入一個帶一個參數的閉包
return$param;//閉包方法返回傳入的參數
});
var_mp($b);

希望可以幫到你,給我個採納呦!~~

閱讀全文

與php閉包參數相關的資料

熱點內容
游戲源碼搭建一條龍 瀏覽:192
宋金pdf 瀏覽:807
伺服器為什麼需要內存池 瀏覽:526
php與jquery開發實例 瀏覽:289
編程大世界故事漫畫 瀏覽:983
北漂程序員出車禍 瀏覽:914
亞馬遜為什麼用雲端伺服器 瀏覽:65
程序員審核職位 瀏覽:385
德龍空調壓縮機 瀏覽:780
紅旗app如何注冊新賬戶 瀏覽:360
慣導pdf 瀏覽:606
c程序員的平均工資 瀏覽:58
微小店源碼 瀏覽:801
編譯原理答題題庫 瀏覽:169
ubuntu編程入門 瀏覽:301
antbuild命令 瀏覽:771
怎麼訂閱伺服器 瀏覽:593
視頻專用加密器哪個好用 瀏覽:295
app無法使用網路哪裡設置 瀏覽:847
紅旗linux怎麼安裝 瀏覽:136