Vorrei richiamare la variabile $nome. Come fare?
class personale
{
public function prova()
{
$nome = "Luigi";
}
}
$test = new personale();
$test->prova();
echo 'Il nome è: '.$test->nome;
Vorrei richiamare la variabile $nome. Come fare?
class personale
{
public function prova()
{
$nome = "Luigi";
}
}
$test = new personale();
$test->prova();
echo 'Il nome è: '.$test->nome;
Devi dichiarare la variabile $nome come public se vuoi accedervi direttamente ed usare $this per impostarla, così
Codice PHP:
class personale
{
public $nome;
public function prova()
{
$this->nome = "Luigi";
}
}
$test = new personale();
$test->prova();
echo 'Il nome è: ' . $test->nome;
Come posso portarmi un intero ciclo fuori dalla classe?
codice:class personale { public $nome; public function prova() { ... while($row = $query->fetch()) { echo $row['nome']; } } }
Finché voglio richiamare singolarmente una variabile: prima la dichiaro con "public $nome;" e poi la richiamo con "$test->nome;"...
E se invece volessi richiamare un elenco di voci prelevati da un db? Come dichiaro e come richiamo $row['nome']?
Ciao, devi creare un metodo e dopo richiamarlo nella pagina da te desiderata.
Io ad esempio ho creato un metodo per l'ordinamento delle date in modo decrescente:
per richiamarlo faccio così:
public function OrderByDesc(){
if ($this->OrderByAsc and $this->OrderByDesc == true){
echo "Errore, controlla le proprietà passate all'oggetto in questione. <br>";
exit;
}
if ($this->OrderByDesc == true){
$Q="SELECT * FROM tabella_commessa ORDER BY scadenza_commessa DESC";
$E=mysql_query($Q);
if ($E and mysql_num_rows($E) > 0){
while($row = mysql_fetch_array($E)){
$Id=$row['0'];
$Scadenza=$row['3'];
echo "Id: $Id - Scadenza; $Scadenza <br> ";
}
}else{
return mysql_error();
}
}
}
$Test=new ClasseProva();
$OrderBy=ClasseProva->OrderBy();
e stampa correttamente le date in ordine decrescente.
Perfetto!! Approfitto nel chiedere un ultima cosa: le variabili di tipo "private" possono essere prelevate da metodi esterne alla classe? c'è modo per il metodo "ClasseEsterna" di fargli leggere la variabile $nome? so che basterebbe dichiararle come "public", ma in alcuni casi (come succede per i parametri di connessione al db) devono essere di tipo "private"...
codice:class prova { private $nome = "pinco"; public function ClasseInterna() { $this->nome; } } public function ClasseEsterna() { ... }
No, le variabili dichiarate private sono visibili solo alla classe di appartenenza.
Se vuoi renderle visibili, la classe di appartenenza deve avere un metodo pubblico che le restituisca
Codice PHP:
class prova
{
private $nome = "pinco";
public function ClasseInterna() {
$this->nome;
}
public function get_nome()
{
return $this->nome;
}
}
// ora istanziando un oggetto di tipo prova puoi chiamare il metodo get:nome() e sapere il valore di $nome.
Ultima modifica di Alhazred; 22-06-2016 a 09:40