Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/03/2006, 15:29
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Duda con el uso de ::

En uno de los mensajes encontré este script:
Código PHP:
class DAC
    
{
        var 
$db;
        
        function &
create$name$dac_type="mysql" )
        {
          if (
$dac_type == "mysql") {
            switch ( 
$name )
            {
                case 
"news"       : return new MySQLNews(); break;
                case 
"users"      : return new MySQLUsers(); break;
                case 
"admins"     : return new MySQLAdmins(); break;
                ......
                ......
                default           : return 
null; break;
            }             
          }    
          if (
$dac_type == "ws") {
            switch ( 
$name )
            {
                case 
"news"       : return new WSNews(); break;
                case 
"users"      : return new WSUsers(); break;
                case 
"admins"     : return new WSAdmins(); break;
                .....
                .....
                default           : return 
null; break;
            }             
          }    
        }    
    }    

    class 
MySQLNews extends MySQLDAC   //implements IDACNews
    
{
        function 
create$news )
        {
            
$sql =  sprintf"INSERT INTO news ( 0, %s )"$news );
            return 
$this->db->execute_non_query $sqltrue );                }
    
        function 
read$id )
        {
            
$sql "SELECT * FROM news WHERE news_id = %s";
            return 
$this->db->execute_querysprintf$sql$id ) );
        }
        
        function 
get_all_news() {
            
$sql "SELECT * from news";
            return 
$this->db->execute_readersprintf$sql ) );            
        }
        
        function 
delete$id )
        {
            
$sql "DELETE FROM news WHERE news_id = %s";
            
$this->db->execute_non_querysprintf$sql$id ) );            
        }
    
        function 
MySQLNews(){ parent::MySQLDAC(); }
    } 
Mi duda en concreto es la siguiente: Si la clase MySQLNews extiende a la clase MySQLDAC, es decir, tiene sus propiedades y métodos y en ningún momento se sobreescribe el método MySQLDAC, porqué es necesario colocar parent::MySQLDAC()? No se llama de manera automática al instanciar el objeto al constructor de la clase padre si no existe constructor en la clase extendida??? No es mejor en este caso dejar la clase derivada sin constructor???

Última edición por Panino5001; 07/03/2006 a las 15:36