簡體   English   中英

PHP5.3中的自執行功能?

[英]Self Executing functions in PHP5.3?

我試圖從JS到PHP借用一些編程范例(只是為了好玩)。 有辦法嗎?

$a = (function(){
  return 'a';
})();

我在想,通過組合use這可以成為隱藏變量JS風格的好方法

$a = (function(){
    $hidden = 'a';
    return function($new) use (&$hidden){
        $hidden = $new;
        return $hidden;
    };
})();

現在我需要這樣做:

$temp = function(){....};
$a = $temp();

這似乎毫無意義......

函數調用鏈接,例如foo()()正在討論PHP5.4。 在那之前,使用call_user_func

$a = call_user_func(function(){
    $hidden = 'a';
    return function($new) use (&$hidden){
        $hidden = $new;
        return $hidden;
    };
});

$a('foo');    
var_dump($a);

得到:

object(Closure)#2 (2) {
  ["static"]=>
  array(1) {
    ["hidden"]=>
    string(3) "foo"
  }
  ["parameter"]=>
  array(1) {
    ["$new"]=>
    string(10) "<required>"
  }
}

從PHP7開始,您可以立即執行如下匿名函數:

(function() { echo 123; })(); // will print 123

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM