MACTHEBEST Inviato 24 Luglio 2007 Segnala Condividi Inviato 24 Luglio 2007 Ciao! vorrei chiedere perchè in uno script del genere $ciao = 'Ciao!'; class ClasseDiProva { mostra_pagina(); } function mostra_pagina() { global $ciao; echo $ciao; } all'interno della classe non viene considerata la variabile globale dichiarata da mostra_pagina() l'esempio è fatto solo per rendere l'idea.... iDock 1.2 Il gestionale completo per i temi del Dock...freeware Velox Fortis Letalis Owner of Battlefield 1942, 2, 2: Special Forces, 2142, Bad Company Link al commento Condividi su altri siti Altre opzioni di condivisione...
Fabriz23 Inviato 25 Luglio 2007 Segnala Condividi Inviato 25 Luglio 2007 la variabile $ciao si trova fuori dalla classe e si differisce da quella che hai dichiarato di tipo global all'interno di mostra_pagina. Teoricamente se dichiari la variabile $ciao (quella fuori dalla classe) di tipo global dovresti riuscire ad accedervi anche all'interno del metodo mostra_pagina a patto che rimuovi la dichiarazione della variabile all'interno del metodo stesso. Link al commento Condividi su altri siti Altre opzioni di condivisione...
MACTHEBEST Inviato 25 Luglio 2007 Autore Segnala Condividi Inviato 25 Luglio 2007 Grazie. altra domanda class ClasseDiProva { mostra_pagina(); } function sub_mostra_pagina() { global $ciao; echo $ciao; } function mostra_pagina() { $ciao; sub_mostra_pagina(); } In questo caso cosa dovrei cambiare? altro esempio per rendere l'idea.... iDock 1.2 Il gestionale completo per i temi del Dock...freeware Velox Fortis Letalis Owner of Battlefield 1942, 2, 2: Special Forces, 2142, Bad Company Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 26 Luglio 2007 Segnala Condividi Inviato 26 Luglio 2007 function mostra_pagina() {$ciao; sub_mostra_pagina(); } nelle tue intenzioni cosa dovrebbe fare quella (non-)istruzione "$ciao;" ? se vuoi usare il valore di $ciao come parametro da visualizzare tramite sub_mostra_pagina allora il codice che stai tentando di scrivere è quanto meno naif io l'avrei scritto così: function sub_mostra_pagina($mostra) { echo $mostra; } function mostra_pagina() { sub_mostra_pagina($ciao); } in generale però mi sembra che tu stia facendo un uso quantomeno confuso delle classi: normalmente una classe si usa per gestire informazioni che vengono in qualche modo "incapsulate" all'interno dalla classe stessa e tenute disaccoppiate dalle variabili globali. nell'ambito della definizione di una classe non dovrebbero in generale comparire mai variabili di tipo globale. quando poi nel codice devi usare (un'istanza del)la classe per manipolare il valore di una variabile globale, il modo di gestire questa condizione è un altro. Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
MACTHEBEST Inviato 26 Luglio 2007 Autore Segnala Condividi Inviato 26 Luglio 2007 Il mio scopo non era niente di applicativo. Era il comprendere meglio le classi... Grazie per le risposte. Disponibili e gentili come sempre. :fiorellino: iDock 1.2 Il gestionale completo per i temi del Dock...freeware Velox Fortis Letalis Owner of Battlefield 1942, 2, 2: Special Forces, 2142, Bad Company Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 26 Luglio 2007 Segnala Condividi Inviato 26 Luglio 2007 Era il comprendere meglio le classi... diciamo allora che il principio base della programmazione a oggetti è "disaccoppiare le informazioni tramite incapsulazione", tenendo sempre ben distinto il trattamento dei dati all'interno di un'istanza di una classe e il trattamento delle variabili globali. di solito il meccanismo base di principio per manipolare le variabili globali è definire all'interno della classe una variabile locale che "copia" il valore della variabile globale per esempio tramite un'assegnazione o un metodo ad hoc, la classe poi esegue le sue manipolazioni e il risultato finale viene assegnato alla variabile globale tramite un altro metodo ad hoc. a seconda del codice è possibile anche collassare il tutto in un unico metodo. per esempio: myClass.useString = $ciao; $ciao = myClass.elaborateUseString(); ma anche $ciao = myClass.capitalizeString($ciao); myClass.displayString($ciao); ecc. Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
MACTHEBEST Inviato 26 Luglio 2007 Autore Segnala Condividi Inviato 26 Luglio 2007 Ti ringrazo molto Grigio60, sei davvero competente, disponibile e pazinte. iDock 1.2 Il gestionale completo per i temi del Dock...freeware Velox Fortis Letalis Owner of Battlefield 1942, 2, 2: Special Forces, 2142, Bad Company Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.