Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    PHP OOP Sostituire una funzione anonima con un metodo dell'oggetto, che è all'interno di una preg_replace_callback

    Ciao a tutti,

    sto cercando di risolvere un problema, premetto che questo codice funziona regolarmente, all'interno vedrete una funzione anonima, la riga che inizia con function ($coincidencias).
    Dal momento che questo codice si trova all'interno di un metodo di un oggetto vorrei che, al posto di chiamare una funzione anonima, chiamare un metodo dell'oggetto che mi restituisca lo stesso risultato, ho provato in vari modi, ma non riesco a trovare la soluzione, premetto che il codice, così com'è funziona correttamente.

    Le righe di codice in pratica cercano una corrispondenza all'interno di un file e tutte le corrispondenze vengono sotituite con un file dal nome '_corrispondeza.php' dove, se tale file non esiste, viene restituita la corrispondenza stessa senza modifiche.

    Come posso fare la stessa cosa utilizzando un metodo all'interno dell'oggeto che si chiami ad esempio:
    protected function getRegexToFichero($coincidencias){
    ...........stesso codice della funzione anonima
    }

    []

    Codice PHP:
            $fichero preg_replace_callback(                
    //espressione regolare                
    self::REGEX,                
    //funzione anonima                  
    function ($coincidencias) {                        
       
    $nombreFichero str_replace("#"""$coincidencias[0]);                        
       
    $nombreFichero "_" strtolower($nombreFichero) . ".php";                        
       
    $nombreFichero $this->getFichero($nombreFichero);                        
       if (
    $nombreFichero) {                            
             return 
    $nombreFichero;                        
       } else {                            
             return 
    $coincidencias[0];                        
       }                
    }
    //fine funzione anonima                
    //file da analizzare                
    $fichero        
    ); 

    Grazie,
    Roberto

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ho provato:
    codice:
            $fichero = preg_replace_callback(
      
                    self::REGEXPALABRA, 
                    function ($coincidencias) {
                        return $this->getRegexTo($coincidencias);
                    }
                    , $fichero
            );
    Così funziona, ma c'e' modo di togliere quella funzione anonima e chiamare il metodo rirettamente?

    Grazie,
    Roberto

  3. #3
    passi come callback array($this,'nomedelmetodo')
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    passi come callback array($this,'nomedelmetodo')

    Perfetto, non so come ringraziarti, così funziona.


    Roberto

  5. #5
    Quote Originariamente inviata da robynosse Visualizza il messaggio
    Perfetto, non so come ringraziarti, così funziona.


    Roberto
    manuale questo sconosciuto
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.