2012-07-02 104 views
5

我想知道是否可以在PHP中重載函數,特別是在CodeIgniter中。例如,在我的Controller中,如果我要加載一個視圖,但是它會因參數提供的變量還是空白而有所不同。這是我試過的概念,這是我在其他語言學會了如何:CodeIgniter中的函數重載

<?php 
    function load_view(){ 
    $this->load->view('view'); 
    } 

    function load_view($var){ 
    $this->load->model('data'); 
    $data = $this->data->getInfo($var); 
    $this->load->view('view', $data); 
    } 
?> 

但是,當我嘗試這樣做,我得到一個錯誤「致命錯誤:不能重新聲明控制器:: load_view」 ......

任何幫助將不勝感激。 在此先感謝!

回答

9

在PHP中爲重載函數使用可選參數。一個例子可能是:

function load_view($var = null) { 
    if (!empty($var)) { 
     $this->load->model('data'); 
     $data = $this->data->getInfo($var); 
     $this->load->view('view', $data); 
    } else { 
     $this->load->view('view'); 
    } 
} 
+0

這就像一個魅力!謝謝! – nickcorin