> Am 26.04.2016 um 19:00 schrieb Niklas Keller <m...@kelunik.com>:
> 
> 2016-04-26 16:58 GMT+02:00 Bob Weinand <bobw...@hotmail.com>:
> 
>> Yeah, I'd like to not allow ?Foo in any case if union types pass.
>> 
> 
> What's the reason for that? To me, null is neither a type nor should it be.

I don't want to argue that now, but null most definitely IS a type. It is the 
null type with a single value, null, whose semantics is to represent the 
absence of any other value.

There's also plenty of evidence in PHP that null is considered a type: 
get_type(), https://php.net/null, has it's own is_* function etc.
At least in the PHP ecosystem it is considered its own type. Other type systems 
may not, but the one of PHP does.

Thus, we are definitely considering it as a type - a question for you: What's 
the type of the value null then, if not null?

If we wouldn't make a distinction between null and an object (i.e. allow null 
to be passed to a function(Foo $foo) {}), it could be considered a supervalue 
of type object. But that's not the case.
 
Bob
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to