2015-05-03 11 views
0

我寫了一個小框架,但我正在學習別人。他們很大,所以我仍然在努力抓住他們的設計。call_user_func_array是在PHP框架中提供頁面的方式嗎?

當用戶呼叫控制器或路由器時,call_user_func_array是頁面「呈現」到渲染器的典型方式嗎?

我傾向於看到這種類型的thing,這是我在我的。看起來這就是它在Codeigniter中的作用,但我不確定。

if ((int)method_exists($controller, $action)) { 
    call_user_func_array(array($dispatch,$action),$queryString); 
} else { 
    /* Error Generation Code Here */ 
} 

CodeIgniter看到這個:

// Execute the callback using the values in matches as its parameters. 
$val = call_user_func_array($val, $matches); 

回答

1

call_user_func_array()功能用於當你不知道你在呼喚提前功能。這就是爲什麼大多數時候,裏面的參數都是變量。

如果你知道你想調用什麼函數,總是手動調用它,否則,使用這個php內置函數。

你應該看看PHP文檔:http://php.net/manual/en/function.call-user-func-array.php

也是另一個堆棧溢出問題的排序答案如此: PHP call_user_func vs. just calling function

+0

然後MVC框架正確地使用它,因爲他們不知道現在該網址的人會要求? – johnny

+1

是的,所以'call_user_func_array(array($ dispatch,$ action),$ queryString);'意味着: 在實例化的類$ dispatch'中使用參數'$ queryString'調用方法'$ action' – nowy

相關問題