<?php 
$obj = new MyClass(); 
$obj =& new MyClass(); 
$obj = &new MyClass(); 
new MyClass(); 
 
$objects = array('one' => new MyClass()); 
$object->myFunction(new MyClass()); 
 
throw new MyException($msg); 
 
function foo() { return new MyClass(); } 
 
$doodad = $x ? new Foo : new Bar; 
 
function returnFn() { 
    $fn = fn($x) => new MyClass(); 
} 
 
function returnMatch() { 
    $match = match($x) { 
        0 => new MyClass() 
    } 
} 
 
// Issue 3333. 
$time2 ??= new \DateTime(); 
$time3 = $time1 ?? new \DateTime(); 
$time3 = $time1 ?? $time2 ?? new \DateTime(); 
 
function_call($time1 ?? new \DateTime()); 
$return = function_call($time1 ?? new \DateTime()); // False negative depending on interpretation of the sniff. 
 
function returnViaTernary() { 
    return ($y == false ) ? ($x === true ? new Foo : new Bar) : new FooBar; 
} 
 
function nonAssignmentTernary() { 
    if (($x ? new Foo() : new Bar) instanceof FooBar) { 
        // Do something. 
    } 
} 
 
// Test for tokenizer issue #3789. 
$a = $b !== null 
    ? match ($c) { 
        default => 5, 
    } 
    : new Foo; 
 
 |