ciao, ho da poco iniziato con il php e con l'OOP, quindi ho deciso di unire le due cose, ma ho un "problemino" con l'output. Come viene gestito il valore tornato da una funzione (tramite return) all'interno di echo? Mi spiego meglio. Questo codice non mi da l'output che voglio, ma non capisco perchè
Codice:
<?php
class lampadina {
var $st;
function status() {
return $this->st;
}
function on() {
$this->st = 1 ;
}
function off() {
$this->st = 0 ;
}
function lampadina() {
$this->st=1;
}
}
$lamp = new lampadina;
if ($lamp->status())
echo "La lampadina e' inizialmente accesa<br>";
else
echo "La lampadina e' inizialmente spenta<br>";
echo "$lamp->st (appena creata)<br>";
$lamp->off();
echo "Ho appena spento la lampadina, infatti \$lamp->status() = ",$lamp->status()," <br>";
echo "$lamp->st <br>";
$lamp->on();
echo "Adesso dovrebbe essere accesa, \$lamp->status() = $lamp->status() <br>";
echo "$lamp->st <br>";
?>
produce il seguente output
Codice:
La lampadina e' inizialmente accesa
1 (appena creata)
Ho appena spento la lampadina, infatti $lamp->status() = 0
0
Adesso dovrebbe essere accesa, $lamp->status() = ()
1
Come vedete nel penultimo echo ho provato a incapsulare nell' echo la funzione, aspettandomi che il valore di ritorno venisse trattato come una variabile ( ==> risolto ) ma mi vengono in output le parentesi tonde che sono quelle della chiamata di funzione.
Qualche aiutino?