foo; /* testNullsafeObjectOperator */ echo $obj?->foo; /* testNullsafeObjectOperatorWriteContext */ // Intentional parse error, but not the concern of the tokenizer. $foo?->bar->baz = 'baz'; /* testTernaryThen */ echo $obj ? $obj->prop : $other->prop; /* testParseErrorWhitespaceNotAllowed */ echo $obj ? -> foo; /* testParseErrorCommentNotAllowed */ echo $obj ?/*comment*/-> foo; /* testLiveCoding */ // Intentional parse error. This has to be the last test in the file. echo $obj?