Skip to content

Commit a68f1c5

Browse files
committed
add match expression section
1 parent 5e3fe43 commit a68f1c5

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

translations/es-AR.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,3 +1417,75 @@ Podés usar `$this` como en cualquier otra función:
14171417
fn () => $this->foo + 1;
14181418
```
14191419

1420+
### Expresión de coincidencia Match
1421+
1422+
![php-version-80](https://shields.io/badge/php->=8.0-blue)
1423+
1424+
Desde PHP 8.0, existe una nueva sintaxis `match` similar a la sintaxis `switch`. Como cada caso coincidente solo debe contener una expresión, no se puede usar y reemplazar una declaración de cambio en cada situación. Sin embargo, es significativamente más corto y más fácil de leer.
1425+
1426+
La expresión `match` siempre devuelve un valor. Cada condición solo permite una sola expresión, e inmediatamente devuelve el valor y no fallará en las siguientes condiciones sin una declaración explícita de `break`:
1427+
1428+
```php
1429+
$foo = 'baz';
1430+
$a = match($foo) {
1431+
'bar' => 1,
1432+
'baz' => 2,
1433+
'qux' => 3,
1434+
}
1435+
// $a = 2
1436+
```
1437+
1438+
Lanza una excepción cuando el valor no puede coincidir:
1439+
1440+
```php
1441+
$foo = 'qux';
1442+
$a = match($foo) {
1443+
'bar' => 1,
1444+
'baz' => 2,
1445+
}
1446+
// PHP Error: Unhandled match value of type string
1447+
```
1448+
1449+
Pero admite una condición predeterminada:
1450+
1451+
```php
1452+
$foo = 'qux';
1453+
$a = match($foo) {
1454+
'bar' => 1,
1455+
'baz' => 2,
1456+
default => 3,
1457+
}
1458+
// $a = 3
1459+
```
1460+
1461+
Permite múltiples condiciones en un solo brazo:
1462+
1463+
```php
1464+
$foo = 'bar';
1465+
$a = match($foo) {
1466+
'bar', 'baz' => 1,
1467+
default => 2,
1468+
}
1469+
// $a = 1
1470+
```
1471+
1472+
Hace una comparación estricta de tipo seguro sin coerción de tipo (es como usar `===` en lugar de `==`):
1473+
1474+
```php
1475+
function showType($param) {
1476+
return match ($param) {
1477+
1 => 'Integer',
1478+
'1' => 'String',
1479+
true => 'Boolean',
1480+
};
1481+
}
1482+
1483+
showType(1); // "Integer"
1484+
showType('1'); // "String"
1485+
showType(true); // "Boolean"
1486+
```
1487+
1488+
#### Recurso externo
1489+
1490+
- [Match expression on PHP.Watch](https://php.watch/versions/8.0/match-expression)
1491+

0 commit comments

Comments
 (0)