Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50

    [PHP] Cambiare da protected a public un metodo

    Ciao a tutti,
    sto cominciando con il php e quindi scusate se la domanda per voi e' banale.

    Ho questo piccolo problema.

    Un metodo di una classe e' definito "protected".
    Devo renderlo "pubblico", definendolo pero' nella classe che estende quella che lo contiene e poi richiamarlo dal codice php

    Come fare?

    L'esempio e' sicuramente piu' esplicativo

    Classe padre
    Codice PHP:

    class Padre {
    ...
    protected function 
    DeleteRow($Id){

        
    $this->sql "DELETE FROM voice_time_frame WHERE 
            id = 
    $Id";
        
    $this->result $this->fnExecQuery($this->sql);
        return 
    $this->result;
    }
    ... 
    Classe figlio
    Codice PHP:

    class figlio extends padre{
    ...

    [
    COLOR=red]Come definirla qui?[/COLOR

    ... 

    File.php
    Codice PHP:

    $ofiglio         
    = new figlio ();
    $ofiglio -> [COLOR=red]Cosa inserire qui?[/COLOR
    Grazie per le spiegazioni e i consigli che mi darete.
    Scusate ancora per la banalita' della domanda.

    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    Risolto grazie alla guida del PHP
    http://php.html.it/guide/lezione/422...-e-overriding/

    Se dovesse servire a qualcuno, nella classe figlio scrivo il metodo cosi'.

    Codice PHP:
    public function DeleteRow($Id){
        
        
    parent::DeleteRow($Id);
        
        return 
    true;


  3. #3
    Ciao =)
    forse è meglio
    codice:
    public function DeleteRow($Id){ 
         
        return parent:: DeleteRow($Id); 
          
    }
    così ritorna il valore corretto =)

  4. #4
    io avrei fatto:

    Codice PHP:

    class Padre{

      protected function 
    deleteRow($id);

    }


    class 
    Figlio extends Padre{

      private 
    $id;

      public function 
    delete(){ //che dovrebbe essere definita in Padre
       
        //...do something
        
    parent::deleteRow($this->id);
        
    //...do something
      
    }

    poi dipende molto da cosa ti serve
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.