<?php 
 
/* 
 * Test file 1 and 2 mirror each other, with file 1 containing non-indented cross-version compatible heredoc/nowdoc syntax, 
 * while the code samples in file 2 use PHP 7.3+ flexible heredoc/nowdoc syntax. 
 * 
 * These two files should be kept in sync! 
 */ 
 
$nowdoc = <<<'EOD' 
    some text 
    EOD; 
 
$heredoc = <<<END 
    some $foo text 
    END; 
 
$heredoc = <<<"END" 
    some {$foo[0]} text 
    END; 
 
$heredoc = <<<END 
    {$foo?->bar} 
    END; 
 
$heredoc = <<<    "END" 
    some ${beers::softdrink} 
    END; 
 
$heredoc = <<< END 
    {${$object->getName()}} text 
    END; 
 
$heredoc = <<<"END" 
    some {${getName()}} 
    END; 
 
$heredoc = <<<END 
    ${substr('laruence', 0, 2)} 
    END; 
 
$heredoc = <<<"END" 
    some {$foo['bar']->baz()()} 
    END; 
 
$heredoc = <<<END 
    {$obj->values[3]->name} text 
    END; 
 
$heredoc = <<<"END" 
    some ${$bar} 
    END; 
 
$heredoc = <<<END 
    ${foo->bar} text 
    END; 
 
$heredoc = <<<"END" 
    ${foo["${bar}"]} text 
    END; 
 
$heredoc = <<<END 
    some ${foo["${bar[\'baz\']}"]} 
    END; 
 
$heredoc = <<<"END" 
    ${foo->{${'a'}}} text 
    END; 
 
$heredoc = <<<END 
    some {$foo->{$baz[1]}} 
    END; 
 
$heredoc = <<<END 
    some text 
    {${beers::$ale}} 
    some text 
    END; 
 
$heredoc = <<<"END" 
    $people->john's wife greeted $people->robert. 
    END; 
 
$heredoc = <<<END 
    Let's make sure it also works with this: {$arr[foo][3]} 
    END; 
 
$heredoc = <<<END 
    Testing ${foo["${bar 
      ['baz'] 
    }"]} and more testing 
    END; 
 
$heredoc = <<<"END" 
    Testing {${foo["${bar 
      ['baz'] 
    }"]}} and more testing 
    END; 
 
$heredoc = <<<'END' 
    some text 
    END; 
 
$heredoc = <<< 'END' 
    some text 
    some \$text 
    some text 
    END; 
 
 |