Ovviamente far restituire un valore numerico q quel metodo non è corretto, ma pensavo facesse lui un casting del dato senza controllarlo. C'è da controllare prima che su quella proprietà non finisca un valore numerico e questo mi sembra un limite.
Comunque l'errore che ricevo nel primo esempio è questo:
Catchable fatal error: Method tmp::__toString() must return a string value in /var/wwwtest1.php on line 14
Invece se modifico la classe in questo modo:
L'errore ricevuto è questo:Codice PHP:
class tmp{
private $dato;
function __construct($value='') {
$this->dato=$value;
}
function __toString() {
if(is_numeric($this->dato))
return (string)$this->dato;
return ($this->dato) ? $this->dato : '';
}
}
$tmp=new tmp(1);
echo $tmp>0;
Notice: Object of class tmp could not be converted to int in /var/www/test1.php on line 16
Quello che scrivi è fare il casting del dato, se poi faccio il controllo come nel secondo esepio non va bene e ricevo l'errore indicato.


Rispondi quotando