124 lines
2.1 KiB
PHP
124 lines
2.1 KiB
PHP
<?php
|
|
|
|
/* testSimpleAssignment */
|
|
$a = false;
|
|
|
|
/* testFunctionCall */
|
|
$a = doSomething();
|
|
|
|
/* testFunctionCallArgument */
|
|
$a = doSomething($a, $b);
|
|
|
|
/* testControlStructure */
|
|
while(true) {}
|
|
$a = 1;
|
|
|
|
/* testClosureAssignment */
|
|
$a = function($b=false;){};
|
|
|
|
/* testHeredocFunctionArg */
|
|
myFunction(<<<END
|
|
Foo
|
|
END
|
|
, 'bar');
|
|
|
|
switch ($a) {
|
|
case 1: {break;}
|
|
case 2: $foo = true; break;
|
|
default: {break;}
|
|
/* testSwitch */
|
|
}
|
|
|
|
/* testStatementAsArrayValue */
|
|
$a = [new Datetime];
|
|
$a = array(new Datetime);
|
|
$a = ['a' => $foo + $bar, 'b' => true];
|
|
|
|
/* testUseGroup */
|
|
use Vendor\Package\{ClassA as A, ClassB, ClassC as C};
|
|
|
|
$a = [
|
|
/* testArrowFunctionArrayValue */
|
|
'a' => fn() => return 1,
|
|
'b' => fn() => return 1,
|
|
];
|
|
|
|
/* testStaticArrowFunction */
|
|
static fn ($a) => $a;
|
|
|
|
/* testArrowFunctionReturnValue */
|
|
fn(): array => [a($a, $b)];
|
|
|
|
/* testArrowFunctionAsArgument */
|
|
$foo = foo(
|
|
fn() => bar()
|
|
);
|
|
|
|
/* testArrowFunctionWithArrayAsArgument */
|
|
$foo = foo(
|
|
fn() => [$row[0], $row[3]]
|
|
);
|
|
|
|
$match = match ($a) {
|
|
/* testMatchCase */
|
|
1 => 'foo',
|
|
/* testMatchDefault */
|
|
default => 'bar'
|
|
};
|
|
|
|
$match = match ($a) {
|
|
/* testMatchMultipleCase */
|
|
1, 2, => $a * $b,
|
|
/* testMatchDefaultComma */
|
|
default, => 'something'
|
|
};
|
|
|
|
match ($pressedKey) {
|
|
/* testMatchFunctionCall */
|
|
Key::RETURN_ => save($value, $user)
|
|
};
|
|
|
|
$result = match (true) {
|
|
/* testMatchFunctionCallArm */
|
|
str_contains($text, 'Welcome') || str_contains($text, 'Hello') => 'en',
|
|
str_contains($text, 'Bienvenue') || str_contains($text, 'Bonjour') => 'fr',
|
|
default => 'pl'
|
|
};
|
|
|
|
/* testMatchClosure */
|
|
$result = match ($key) {
|
|
1 => function($a, $b) {},
|
|
2 => function($b, $c) {},
|
|
};
|
|
|
|
/* testMatchArray */
|
|
$result = match ($key) {
|
|
1 => [1,2,3],
|
|
2 => [1 => one($a, $b), 2 => two($b, $c)],
|
|
3 => [],
|
|
};
|
|
|
|
/* testNestedMatch */
|
|
$result = match ($key) {
|
|
1 => match ($key) {
|
|
1 => 'one',
|
|
2 => 'two',
|
|
},
|
|
2 => match ($key) {
|
|
1 => 'two',
|
|
2 => 'one',
|
|
},
|
|
};
|
|
|
|
return 0;
|
|
|
|
/* testOpenTag */
|
|
?>
|
|
<h1>Test</h1>
|
|
<?php echo '<h2>', foo(), '</h2>';
|
|
|
|
/* testOpenTagWithEcho */
|
|
?>
|
|
<h1>Test</h1>
|
|
<?= '<h2>', foo(), '</h2>';
|