<?php 
 
/* 
 * Square brackets. 
 */ 
 
/* testArrayAccess1 */ 
$var = $array[10]; 
 
$var = $array[++$y]/* testArrayAccess2 */[$x]; 
 
/* testArrayAssignment */ 
$array[] = $var; 
 
/* testFunctionCallDereferencing */ 
$var = function_call()[$x]; 
 
/* testMethodCallDereferencing */ 
$var = $obj->function_call()[$x]; 
 
/* testStaticMethodCallDereferencing */ 
$var = ClassName::function_call()[$x]; 
 
/* testPropertyDereferencing */ 
$var = $obj->property[2]; 
 
/* testPropertyDereferencingWithInaccessibleName */ 
$var = $ref->{'ref-type'}[1]; 
 
/* testStaticPropertyDereferencing */ 
$var ClassName::$property[2]; 
 
/* testStringDereferencing */ 
$var = 'PHP'[1]; 
 
/* testStringDereferencingDoubleQuoted */ 
$var = "PHP"[$y]; 
 
/* testConstantDereferencing */ 
$var = MY_CONSTANT[1]; 
 
/* testClassConstantDereferencing */ 
$var ClassName::CONSTANT_NAME[2]; 
 
/* testMagicConstantDereferencing */ 
$var = __FILE__[0]; 
 
/* testArrayAccessCurlyBraces */ 
$var = $array{'key'}['key']; 
 
/* testArrayLiteralDereferencing */ 
echo array(1, 2, 3)[0]; 
 
echo [1, 2, 3]/* testShortArrayLiteralDereferencing */[0]; 
 
/* testClassMemberDereferencingOnInstantiation1 */ 
(new foo)[0]; 
 
/* testClassMemberDereferencingOnInstantiation2 */ 
$a = (new Foo( array(1, array(4, 5), 3) ))[1][0]; 
 
/* testClassMemberDereferencingOnClone */ 
echo (clone $iterable)[20]; 
 
/* testNullsafeMethodCallDereferencing */ 
$var = $obj?->function_call()[$x]; 
 
/* testInterpolatedStringDereferencing */ 
$var = "PHP{$rocks}"[1]; 
 
/* 
 * Short array brackets. 
 */ 
 
/* testShortArrayDeclarationEmpty */ 
$array = []; 
 
/* testShortArrayDeclarationWithOneValue */ 
$array = [1]; 
 
/* testShortArrayDeclarationWithMultipleValues */ 
$array = [1, 2, 3]; 
 
/* testShortArrayDeclarationWithDereferencing */ 
echo [1, 2, 3][0]; 
 
/* testShortListDeclaration */ 
[ $a, $b ] = $array; 
 
[ $a, $b, /* testNestedListDeclaration */, [$c, $d]] = $array; 
 
/* testArrayWithinFunctionCall */ 
$var = functionCall([$x, $y]); 
 
/* testLiveCoding */ 
// Intentional parse error. This has to be the last test in the file. 
$array = [ 
 
 |