小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

閉包支持

 醉人說(shuō)夢(mèng) 2021-09-29

閉包定義

我們可以使用閉包的方式定義一些特殊需求的路由,而不需要執(zhí)行控制器的操作方法了

參數(shù)傳遞

閉包定義的參數(shù)傳遞在規(guī)則路由和正則路由的兩種情況下有所區(qū)別。

規(guī)則路由

規(guī)則路由的參數(shù)傳遞比較簡(jiǎn)單:

'hello/:name' =>     function($name){         echo 'Hello,'.$name;    }

規(guī)則路由中定義的動(dòng)態(tài)變量的名稱 就是閉包函數(shù)中的參數(shù)名稱,不分次序。 因此,如果我們?cè)L問(wèn)的URL地址是: http://serverName/Home/hello/thinkphp

則瀏覽器輸出的結(jié)果是: Hello,thinkphp

正則路由

如果是正則路由的話,閉包函數(shù)中的參數(shù)就以正則中出現(xiàn)的參數(shù)次序來(lái)傳遞,例如:

'/^new\/(\d{4})\/(\d{2})$/' =>     function($year,$month){         echo 'year='.$year.'&month='.$month;    }

如果我們?cè)L問(wèn): http://serverName/Home/new/2013/03 瀏覽器輸出結(jié)果是: year=2013&month=03

繼續(xù)執(zhí)行

默認(rèn)的情況下,使用閉包定義路由的話,一旦匹配到路由規(guī)則,執(zhí)行完閉包方法之后,就會(huì)中止后續(xù)執(zhí)行。如果希望閉包函數(shù)執(zhí)行后,后續(xù)的程序繼續(xù)執(zhí)行,可以在閉包函數(shù)中使用布爾類型的返回值,例如:

'hello/:name' =>     function($name){         echo 'Hello,'.$name.'<br/>';        $_SERVER['PATH_INFO'] = 'blog/read/name/'.$name;        return false;    }

該路由定義中的閉包函數(shù)首先執(zhí)行了一段輸出代碼,然后重新設(shè)置了$_SERVER['PATH_INFO']變量,交給后續(xù)的程序繼續(xù)執(zhí)行,因?yàn)榉祷刂凳莊alse,所以會(huì)繼續(xù)執(zhí)行控制器和操作的檢測(cè),從而會(huì)執(zhí)行Blog控制器的read操作方法。

假設(shè)blog控制器中的read操作方法代碼如下:

public function read($name){    echo 'read,'.$name.'!<br/>';}

如果我們?cè)L問(wèn)的URL地址是: http://serverName/Home/hello/thinkphp

則瀏覽器輸出的結(jié)果是:

Hello,thinkphpread,thinkphp!







































================================

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多