Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    trick per ridefinire uan funzione

    Ragazzi so che l'overloading in php non è possibile

    fatto sta però che mi sto cimentando nella pazzoide idea di integrare i core di due cms... e sembra funzionare! L'uncio problema è che i due cms condividono una funzione con lo stesso nome. In pratica io faccio caricare il core di uno dentro l'altro in modo da usarli entrambi ma questa funzione mi da problemi.

    Se inserisco un if(!function_exists('nome funzione')){ prima della funzione stessa naturalmente il tutto funziona ma in questo mdod il secondo cms andrebbe ad utilizzare la seguente funzione dell primo.... ancora non ho sperimentato le conseguenze!

    Come vi comportereste in questo caso?
    Il sapere umano appartiene al mondo.

  2. #2
    beh. se tu sei integrare gli entrambi ad uno script poi i nomi devono essere differente. non c'è un'altro modo di cambiare che io conosco. tutte le funzione con gli stessi nomi in uno script devono essere cambiare a un'alternato in definizione e utilizzo in il script da mano mi credo.

    Dennis M.
    Nuovo Blog di Programmazione! (Lo ha i tutti tipi! PHP e C/C++)
    Per piacere lo supporti!

  3. #3
    per ora l'unica cosa che mi è venuta in mente è quella di definire una costante nello script che incorpora l'altro prima di includere il core dell'altro... in questo modo faccio un check nella dichiarazione della funzione.... tanto quando uso il secondo la funzione del primo non mi serve.... se qualcuno ha un'idea migliore...
    Il sapere umano appartiene al mondo.

  4. #4
    mah senza nessun dettaglio tecnico è difficile dire qualcosa di sensato, direi cmq di assegnare un identificativo ad ognuno dei core, in maniera che quando vai a richiamare la funzione sai che core stai utilizzando e quindi quale versione della funzione richiamare.. o altrimenti scrivi due funzioni con nomi diversi... bu
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    - O fai un Search&Replace su tutte le pagine il portale, e cambi il nome ad una delle due funzioni. Probabilmente la più semplice.

    - O aggiungi un parametro (true/false, o 1/0, o altro di bivalente) che ti dice quale delle due vuole eseguire.
    Dopodiché, in base al valore esegui il codice di una o dell'altra. Ovviamente devi integrare tutto nella stessa funzione.
    Ah inoltre devono avere gli stessi parametri, altrimenti fa casino.

    Non so.... forse se hanno un numero di parametri diversi riesce a capire da solo quale delle due è.

    Studiati a fondo l'overloading: fatta la legge, trovato l'inganno

    Anzi, se non sbaglio mi pare di aver posto la stessa domanda sul forum un annetto fa. Magari fai una ricerca.... ricordo che qualche scappatoia c'era....

  6. #6
    grazie ragazzi.. vedrò un pò di impazzirmici sopra!
    Il sapere umano appartiene al mondo.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.