2012-07-02 15 views
5

PHPで、特にCodeIgniterで関数をオーバーロードできるかどうかは疑問でした。たとえば、私のコントローラでは、ビューをロードするかどうかを指定しますが、変数がパラメータとして指定されているのか、それとも空白のままであるのかは異なります。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

関連する問題