Diferencia entre revisiones de «PHP 8.1»

De Wiki Proyectos Beta
Ir a la navegación Ir a la búsqueda
([feat] Add information about PHP 8.1 - readonly properties)
Línea 29: Línea 29:


Las enumeraciones hacen que el código se lea mejor e impiden un estado inesperado de la aplicación.
Las enumeraciones hacen que el código se lea mejor e impiden un estado inesperado de la aplicación.
== Propiedades Readonly ==
PHP 8.1 incluye soporte para propiedades readonly (solo lectura). Una vez declaradas solo pueden ser inicializadas una vez y no se puede modificar nunca su valor, porque si lo hacemos se produciría una excepción de error.
Un ejemplo sería el siguiente:
  class Test {
      public readonly string $Arsys;
      public function __construct(string $Arsys) {
          // Legal initialization.
          $this->Arsys= $Arsys;
      }
  }

Revisión del 09:08 10 jul 2022

Descripción

PHP 8.1 trae novedades importantes, nuevas funciones y un rendimiento optimizado. Mejora la versión anterior y está disponible en su página oficial desde el 25 de noviembre de 2021.

Nuevas características

Enums

Enum para abreviar o "Enumeraciones", es un tipo enumerado que tiene un número fijo de posibles valores.

Imaginemos una baraja de cartas con oros, copas, espadas y bastos, siendo estos palos los cuatro fijos de la baraja.

Con Enum, los palos los podemos enumerar de este modo en PHP:

 enum Palo {
     case Copas;
     case Espadas;
     case Bastos;
     case Oros;
 }

Con Palo Enum, se puede aplicar tipos al aceptar o devolver un valor de palo de este modo:

 function elige_carta(Palo $palo) {}
 elige_carta (Palo::Copas);
 elige_carta (Palo::Espadas);
 elige_carta (Palo::Bastos);
 elige_carta (Palo::Oros);

Las enumeraciones hacen que el código se lea mejor e impiden un estado inesperado de la aplicación.

Propiedades Readonly

PHP 8.1 incluye soporte para propiedades readonly (solo lectura). Una vez declaradas solo pueden ser inicializadas una vez y no se puede modificar nunca su valor, porque si lo hacemos se produciría una excepción de error.

Un ejemplo sería el siguiente:

 class Test {
     public readonly string $Arsys;
     public function __construct(string $Arsys) {
         // Legal initialization.
         $this->Arsys= $Arsys;
     }
 }