5

PHP、特に 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);
  }
?>

しかし、これを試してみると、「致命的なエラー: Controller::load_view を再宣言できません」というエラーが表示されます...

どんな助けでも大歓迎です。前もって感謝します!

4

1 に答える 1

10

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');
     }
}
于 2012-07-02T22:49:58.673 に答える