What would it hurt to allow instanceof to return types other than object? $x instanceof NULL $x instanceof string
and so on. This would be more powerful and useful than throwing an error where one wasn't being thrown before. It also would let one operator detect all the types, rather than the plethora of detect functions we currently have. On Tue, Dec 19, 2017 at 4:48 PM, Nikita Popov <nikita....@gmail.com> wrote: > On Sat, Dec 9, 2017 at 7:28 AM, Andreas Hennings <andr...@dqxtech.net> > wrote: > > > The following (https://3v4l.org/A2Tp6) is ok, it simply returns false: > > > > $x = 1; > > $x instanceof \stdClass; > > > > > > The following (https://3v4l.org/IdSBu) gives a fatal error: > > > > 1 instanceof \stdclass; > > > > t think this behavior is inconsistent, and we should consider changing > it. > > > > There are two options, but only one is BC. > > > > - Let 1 instanceof \stdClass return false, instead of crashing. -> seems > BC > > - Let $x instanceof \stdClass crash, if $x is not an object. -> BC break. > > > > So it seems the first would the option we should take. > > This is also what hhvm does, according to https://3v4l.org/IdSBu. > > > > I've prepared a PR for this change: https://github.com/php/php- > src/pull/2978 > > From the discussion I'm understanding that our consensus is to implement > this change, so if there are no further objection I'll merge this in a few > days. > > Nikita >