2012-07-02 31 views
5

Tôi đã tự hỏi liệu bạn có thể quá tải các hàm trong PHP, cụ thể là trong CodeIgniter hay không. Ví dụ trong bộ điều khiển của tôi nếu tôi được tải một khung nhìn, nhưng nó sẽ khác nhau cho dù một biến được cung cấp như một tham số hoặc nếu nó được để trống. Đây là khái niệm tôi đã cố gắng, đó là cách tôi học được trong các ngôn ngữ khác:Quá tải hàm trong 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); 
    } 
?> 

Nhưng khi tôi cố gắng này, tôi nhận được một thông báo lỗi "Fatal error: Không thể redeclare điều khiển :: load_view" ...

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn bạn trước!

Trả lời

9

Trong hàm PHP quá tải sử dụng các tham số tùy chọn. Một ví dụ có thể là:

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

Điều đó làm việc như một sự quyến rũ! Cảm ơn! – nickcorin

Các vấn đề liên quan