Come poter posizionare una funzione da una classe ad un'altra esterna (altro file)

Ciao

ho una funzione molto lunga all'interno di una classe in un file es.

class miaClasse extends altraClasse {

public function miafunzione {

}

contenuto funzione

}

quello che vorrei è poter mettere il contenuto di questa funzione in un atro file .php dentro una classe e chiamarla es. secondafunzione, dove miafunzione richiama secondafunzione (ovviamente utilizzo require_one per caricare il secondo php)

Non ci sono problemi perchè gli passo le variabili della funzione miafunzione e ho visto che delle funzioni usate in miafunzione vanno bene anche in secondafunzione senza dover caricare i files di quelle classi che contengono queste funzioni.

Il problema viene dalla variabile $this, che non posso far passare a secondafunzione perchè mi dice che non è possibile riassegnarla.

Spero di non aver fatto troppa confusione nella spiegazione.

ciao

inviato 3 anni fa
maofree
X 0 X

Puoi passare l'oggetto $this a secondafunzione ma il parametro che accoglierà $this in secondafunzione non deve chiamarsi $this ma deve avere necessariamente un altro nome.

Ovviamente secondafunzione, attraverso questo parametro, non potrà accedere a tutti gli attributi e metodi di miaClasse ma solo a quelli pubblici.

risposto 3 anni fa
Gianni Tomasicchio
Grazie Gianni, ci avevo pensato, ma rinominare tutte le variabili è una cosa un pò lunga. Comunque ho utilizzato questo tuo suggerimento utilizzando una soluzione mista es. ho passato questi due oggetti $this e $this->context a secondafunzione che son divenuti $module e $context, poi ho associato $this->context = $context; dato che è molto ricorrente in secondafunzione e utilizzato $module solo in alcuni casi e adesso è tutto ok. Ciao e grazie della ua disponibilitàmaofree 3 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda