asString() method vs __toString() magic method.
| From: | Richard Quadling | Date: | Tue, 02 Aug 2011 14:47:38 +0000 |
| Subject: | asString() method vs __toString() magic method. | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-54288@lists.php.net to get a copy of this message | ||
Hi.
Given the relatively simple code below, why can't I throw an exception
in __toString()?
<?php
class AlwaysFails {
public function asString() {
throw new Exception('Failed in asString()');
}
public function __toString() {
throw new Exception('Failed in __toString()');
}
}
$failure = new AlwaysFails;
try {
echo $failure->asString();
}
catch(Exception $ex) {
echo $ex->getMessage();
}
try {
echo $failure;
}
catch(Exception $ex) {
echo $ex->getMessage();
}
?>
outputs ...
Failed in asString()
Fatal error: Method AlwaysFails::__toString() must not throw an
exception in Z:\fa1.php on line 21
--
Richard Quadling
Twitter : EE : Zend : PHPDoc
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea