MATCH EN PHP 8
Hace un tiempo os hablé de las nuevas funciones
en php 8 quería explicar la expresión match en php 8 con las que se puede sustituir el switch case.
Características de la expresión match en PHP 8
- Match es una expresión, por lo tanto su resultado puede ser almacenado en una variable o retornado.
- Cada variante de Match solo acepta una expresión de una sola línea y por lo tanto no necesita break como en el caso de switch.
- Las comparaciones de Match son estrictas en tipo. Es decir '8.0' (cadena) no coincidirá con 8.0 (número).
- Si quieres coincidir con más de un valor, puedes separarlos por comas: 'double', 'float'.
Esto se va a ver mejor con un ejemplo:
Antes de php 8
switch (gettype($value)) { case 'array': return $this->exportArray($value); case 'integer': return $this->format->integer($value); case 'double': case 'float': return $this->format->float($value); case 'string': return $this->format->string($value); case 'boolean': return $this->format->bool($value ? 'true' : 'false'); case 'NULL': case 'null': return $this->format->null(); default: return ''; }
Después de php 8
return match(gettype($value)) { 'array' => $this->exportArray($value), 'integer' => $this->format->integer($value), 'double', 'float' => $this->format->float($value), 'string' => $this->format->string($value), 'boolean' => $this->format->bool($value ? 'true' : 'false'), 'NULL', 'null' => $this->format->null(), default => '', };
En el ejemplo anterior el resultado puede ser guardado en una variable en vez de hacer return