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è
produce il seguente outputCodice:<?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>"; ?>
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.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
Qualche aiutino?

LinkBack URL
About LinkBacks
