空(kōng)操作(zuò)是(shì)指系統在 £ 找不(bù)到(dào)請(qǐng)求的(de)操作(z↕≤uò)方法的(de)時(shí)候,會(huì)定位到(dà ☆π→o)空(kōng)操作(zuò)(_empty)方法來(lái)執行(xíng),利用(yòng)這(zhè)個(gè)機(☆&jī)制(zhì),我們可(kě)以實現(xiàn)≈↕錯(cuò)誤頁面和(hé)一(yī)些(xiē)URL的(de≈€)優化(huà)。
例如(rú),下(xià)面我們用(yòng)空(kō♦•φng)操作(zuò)功能(néng)來(lái)實現(xiàn)一(yī✘α)個(gè)城(chéng)市(shì)切換的(de)功能(néngλφ→δ)。 我們隻需要(yào)給CityAction類定義一(₹±∏yī)個(gè)_empty(空(kōng)操作(zuò))方法:
<?phpnamespace Home\Controller;use Think\Controller;class CityController extends Controller{public function _empty($name){//把所有(yǒu)城(chéng)市(shì)的(de)操✘♠作(zuò)解析到(dào)city方法$this->city($name);}//注意 city方法 本身(shēn)是(shì™÷) protected 方法protected function city($name){//和(hé)$name這(zhè)個(gè)城(chéng)≤←市(shì)相(xiàng)關的(de)₩∏↔處理(lǐ)echo '當前城(chéng)市(shì)' . $name;}}
接下(xià)來(lái),我們就(jiù)可(kě♥$ε¥)以在浏覽器(qì)裡(lǐ)面輸入
http://serverName/index.php/Home/City/bei β♣jing/http://serverName/index.php/Home/Cit↕✘y/shanghai/http://serverName/index.php/Home/C♦γσity/shenzhen/
由于City控制(zhì)器(qì)并沒有(yǒu)定義b'∑eijing、shanghai或者shenzhen操作(zuò)方法,'♣>↕因此系統會(huì)定位到(dào)空(kōng)操作(zuò)方法 _empty中去(qù)解析,_empty方法的(de)參數(shù)就(jiù)是(sh¶&↕ì)當前URL裡(lǐ)面的(de)操作(zuò)名,因此會(huì)看(φ ₽kàn)到(dào)依次輸出的(de)結果是¥₽×(shì):
當前城(chéng)市(shì):beijing當前城(chéng)市(shì):shanghai當前城(chéng)市(shì):shenzhen
注意:空(kōng)操作(zuò)方法僅在你(nǐ)的(de)控制(zhì)≠λ↕→器(qì)類繼承系統的(de)Think\Contr★€→≥oller類才有(yǒu)效,否則需要(yào)自(zì)己"☆₽定義
__call來(lái)實現(xiàn)。




