PDA

View Full Version : [php] semplice classe...


mamo139
21-12-2009, 23:06
per quanto riguarda la programmazione ad oggetti vengo da c++ e non mi trovo molto a mio agio qui in php...

potete tirarmi un occhiata a queste 4 righe di codice e dirmi come mai non funzionano??

questa è la classe...

class testo{

// variabili membro
public $en;
public $it;

// funzioni
public function print(){
$lingua = $_SESSION['lingua_corrente'];
if($lingua == 'en')
echo $en;
else if($lingua == 'it')
echo $it;
else echo "There is no traslation available for the selected language.";
}

}

e così vorrei usarla

$lingua_usata = new testo();
$lingua_usata->en = "English";
$lingua_usata->it = "Italiano";
$lingua_usata->print();



praticamente mi serve per semplificare la traduzione in due lingue del mio sito.

grazie mille ;)

ndakota
21-12-2009, 23:57
per quanto riguarda la programmazione ad oggetti vengo da c++ e non mi trovo molto a mio agio qui in php...

potete tirarmi un occhiata a queste 4 righe di codice e dirmi come mai non funzionano??

questa è la classe...

class testo{

// variabili membro
public $en;
public $it;

// funzioni
public function print(){
$lingua = $_SESSION['lingua_corrente'];
if($lingua == 'en')
echo $en;
else if($lingua == 'it')
echo $it;
else echo "There is no traslation available for the selected language.";
}

}

e così vorrei usarla

$lingua_usata = new testo();
$lingua_usata->en = "English";
$lingua_usata->it = "Italiano";
$lingua_usata->print();



praticamente mi serve per semplificare la traduzione in due lingue del mio sito.

grazie mille ;)

Non conosco PHP ma dopo che dichiari le variabili membro, nella classe ti ci devi riferire con $this->nomeAttributo. Quindi nel tuo caso:


class testo{

// variabili membro
public $en;
public $it;

// funzioni
public function print(){
$lingua = $_SESSION['lingua_corrente'];
if($lingua == 'en')
echo $this->en;
else if($lingua == 'it')
echo $this->it;
else echo "There is no traslation available for the selected language.";
}

}

mamo139
22-12-2009, 08:38
avevo gia provato e ho riprovato adesso...

se includo questo:


//classe testo
class testo{

// variabili membro
public $en = "There is not an english traslation of this text.";
public $it = "La versione italiana di questo testo non è disponibile.";

// funzioni
public function print(){
$lingua = $_SESSION['lingua_corrente'];
if($lingua == 'en')
echo $this->en;
else if($lingua == 'it')
echo $this->it;
else echo "There is no traslation available for the selected language.";
}

}


dice
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /membri/mamo139/include/lingua.php on line 24

dove la line 24 è questa:
public $en = "There is not an english traslation of this text.";

ndakota
22-12-2009, 13:35
Prova ad inizializzarle nel costruttore.

mamo139
22-12-2009, 16:23
il problema è che il server era in modalità php4, mentre questo codice è compatibile solo con php5