iT邦幫忙

DAY 7
2

網頁開發五四三系列 第 8

PHP 函式呼叫也有匿名?

php

在 JavaScript 有所謂的匿名函式,但在 php 是否也有呢?
看到一段滿特別的程式碼

關於call_user_func 與 switch (true) 的使用,將用法稍做整理,程式碼如下:

$rs = call_user_func(function()
    {
        switch(true)
        {
            case ( ($_GET['a'] == 1) && ($_GET['b'] == 2) ):
            case "其它相同的處理條件1":
            case "其它相同的處理條件2":
                $rtn = 1;
                break;
            case ( ($_GET['a'] == 1) && ($_GET['b'] == 3) ):
            case "其它相同的處理條件3":
            case "其它相同的處理條件4":
                $rtn = 2;
                break;
            default:
                $rtn = -1;
                break;
        }
    
        return $rtn;
    }

);

//補充 : endforeach 的寫法,沒有使用括孤

foreach($array as $element): 
  #do something 
endforeach; 

如果該函式使用了很多變數名稱或宣告了很多變數資源

是否使用這種匿名函式的方式,可以在結束時,也一起釋放了所使用的資源呢?

個人覺得....應該會~~~~吧(未證實,就參考看看囉)

至於 switch (true) 的寫法

在我個人的使用心得,(以不去計較是否和 elseif 效能上是否有 微微微微微秒的差異 )

我想,某程度上,在程式碼的"閱讀"及"維護"上,應該是有加分的!!


上一篇
function , script block in JavaScript (函式,腳本區) 4
下一篇
給 JavaScript 的 Class 新增方法 ( .method vs .prototype )
系列文
網頁開發五四三12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
fillano
iT邦超人 1 級 ‧ 2013-09-24 17:02:25

在Javascript或是PHP,都可以用匿名函數做出Closure,不過在PHP中,使用到的變數需要用use來宣告,這樣比Javascript囉嗦,但是比較不會有意外。

0
shazi
iT邦新手 4 級 ‧ 2013-09-24 18:20:50

哇呼~~

感謝 fillano 的指導~

真的是一語驚醒夢中人....

學習了!!~~

非常感謝!!

我要留言

立即登入留言