2012-07-02 16 views
5

Me preguntaba si podría sobrecargar funciones en PHP, específicamente en CodeIgniter. Por ejemplo, en mi controlador si tuviera que cargar una vista, pero diferiría si una variable se suministró como parámetro o si se dejó en blanco. Este es el concepto que lo intenté, que es lo que he aprendido en otros idiomas:Sobrecarga de función en 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); 
    } 
?> 

Pero cuando he intentado esto, me da un error "Fatal error: No se puede redeclare Controlador :: load_view" ...

Cualquier ayuda sería muy apreciada. ¡Gracias de antemano!

Respuesta

9

En PHP para sobrecargar las funciones, use los parámetros opcionales. Un ejemplo podría ser:

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

¡Eso funcionó como un amuleto! ¡Gracias! – nickcorin

Cuestiones relacionadas