Newsgroup: it.comp.www.php
Titolo: uso di var nelle classi php

Scusate ma non riesco a capire bene l'uso di
var $variabile nelle classi php
i due breve esempi di seguito riportati danno lo stesso risultato
<?php
class Test{
    var $pippo;
    function pippo($pippo){
        $this->pippo=$pippo;
        echo $this->pippo;
    }
}
$whois = new Test;
$whois->pippo($pippo);
?>
<?php
class Test{
/*      var $pippo;     */
    function pippo($pippo){
        $this->pippo=$pippo;
        echo $this->pippo;
    }
}
$whois = new Test;
$whois->pippo($pippo);
?>
qualcuno mi puo spiegare anche con poche parole l'uso di var
Grazie in anticipo
Corrado

l'uso di varnon l'ho capito nemmeno io, ma programmo ancora in php3 per 
cui mi ci devo ancora mettermi seriamente a capire cosa me ne posso fare 
in uno script di variabili predefinite...
cmq il tuo esempio probabilmente da lo stesso risultato semplicemente 
perchč tu definisci due variabili pippo e se ricordo bene a rigor di 
logica la variabile della funzione se ha lo stesso nome di quella 
globale ha la precedenza diciamo cosě
tu in quel caso hai creato due variabili pippo non č la stessa che usi 
dentro la funzione.. non so se hai capito...
Spero di non avere detto una cavolata....
:O)

var $variabile nelle classi php
in realtà, qlc dovrebbe spiegarti perché in PHP non occorre
mai l'uso di var, tranne che in questo caso.
Faccio un discorso generico:
var $nomevar serve per dichiarare una variabile ed informare
il compilatore/interprete che il programma utilizzerà una
variabile di tipo intero/string/real etc. 
Ogni compilatore e linguaggio di programmazione ha le sue
specifiche e modalità di allocare spazio per le variabili e
per la loro definizione/dichiarazione.
Inoltre, nei linguaggi a sintassi rigorosa e fortemente
tipizzati, la dichirazione esplicita puo' servire proprio
per evitare bug nel codice. Il compilatore/interprete
potrebbe infatti segnalarti l'uso di una variabile non
dichiarata precedentemente (tramite un warning o un errore
che blocca la compilazione) oppure l'assegnazione di un
valore real ad una variabile dichiarata integer.
PHP è molto accomodante verso tutte queste problematiche, ma
quando devi definire una classe, non puo' chiudere un occhio
come fa di solito:)
--
PubbliProgress:
http://www.gruppokaos.it/pagine/Documenti/nestlè.htm
http://www.gruppokaos.it/pagine/Documenti/Controinformazione/un_opuscolo_scomodo.htm
http://www.gruppokaos.it/pagine/Documenti/Banche%20Dati/banche.htm

io so programmare in C e java etc etc e lo so lo scopo della definizione 
delle variabili ehehe
semplicemente non capivo che utilità potesse avere questo in php....
per caso la definizione di variabili prima dell'utilizzo ottimizza 
l'utilizzo della memoria da parte di php e velocizza l'esecuzione?

semplicemente non capivo che utilità potesse avere questo in php....
Non so i meccanismi esatti, ma cmq credo che lo faccia in
maniera trasparente (lo deve fare per forza).
Quindi, anche se tu non dichiari alcuna variabile e la
utilizzi direttamente nel codice, PHP genera (IMHO) un
codice "intermedio" in cui ci sono tali variabili definite.
Per le classi, il discorso è diverso. Bisogna assolutamente
dichiarare quali sono i membri di una classe, altrimenti la
classe non è definita!
Se volessi ad esempio creare una sorta di interfaccia
(classe genitore senza alcuna utilità se non quella di
definire una struttura comune a tutte le calsse derivanti da
essa), come fa una classe derivata a sapere quali sono le
variabili membro della classe?
--
Oggi ho fatto una scoperta, ho trovato un computer...
The MentoR

 essa),
qui stiamo parlando di Java. però...
poi una classe non può derivare da un interfaccia, al massimo la può
implementare. =P
--
CIAO!
Gusher

implementare. =P
Sě intendevo quello, č vero. Sorry:))
E cmq non stiamo parlando di Java, ma di programmazione ad
oggetti in generale.
Una classe genitore č una classe genitore. Mi sono riferito
ad una classe virtuale (credo si chiami cosě, in Java la
chiamano interfaccia), per fare un altro esempio...
--
It's just a joint...
Set me Free!!