Re: Scalar type hinting
| From: | Gustavo Lopes | Date: | Mon, 27 Feb 2012 20:05:19 +0000 |
| Subject: | Re: Scalar type hinting | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-58185@lists.php.net to get a copy of this message | ||
On Mon, 27 Feb 2012 20:09:08 +0100, Johannes Schlüter <johannes@schlueters.de> wrote:
On Mon, 2012-02-27 at 13:05 -0600, Richard Lynch wrote:This is not true. The new operator can return NULL. In fact, the intl extension uses this extensively: $ php -d extension=intl.so -r 'var_dump(new Collator());' Warning: Collator::__construct() expects exactly 1 parameter, 0 given in Command line code on line 1 NULL (in fact, I think it's also leaking the object in this case as it should call zval_dtor before using RETURN_NULL, something I'll look closer to when I have the time) Contrast with: <?php class A { function __construct($a) {} } var_dump(new A()); Warning: Missing argument 1 for A::__construct(), called in - on line 5 and defined in - on line 3 object(A)#1 (0) { } -- Gustavo LopesI'd have to come up with some OTHER scenario not involving fatal error, such as: strict $db = new DB();The example is wrong. The new operator will always return an instance of the given class (or there will be an exception). [...]