Skip to content

Should $a instanceof $b instanceof $c be permitted in implementation/specification? #226

Open
@TysonAndre

Description

@TysonAndre

$x instanceof $y instanceof $z is a nonsense expression, but is successfully parsed in PHP 5.6-7.3 (see https://3v4l.org/QWYZJ)

Either of the following would make sense:

  1. Mention that this is non-associative in php-langspec (to reflect php.net) (It seems like that's probably a consequence of the current CFG, so maybe nothing needs to be done)

    Additionally, try to make that a syntax error in php 8.x or 7.4, to reflect the documentation on php.net: https://secure.php.net/manual/en/language.operators.precedence.php

  2. Update the specification to allow it, and update php.net (it seems like it's currently parsed as ($x instanceof $y) instanceof $z according to ast\parse_code()) - I'm opposed to that, and it seems like the spec in this repo forbids that

I'm not quite sure what repo to file this in, or the process to request the change to php implementation's syntax, or if this has been mentioned elsewhere.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions