"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Se pueden inicializar las propiedades de una clase PHP con expresiones no constantes?

¿Se pueden inicializar las propiedades de una clase PHP con expresiones no constantes?

Publicado el 2024-11-10
Navegar:295

Can PHP Class Properties Be Initialized with Non-Constant Expressions?

Enigma de inicialización de clases PHP: evaluación de expresiones en declaraciones de propiedades

La documentación de PHP dicta que las declaraciones de propiedades de clases se pueden inicializar con valores constantes. Sin embargo, los usuarios han encontrado errores de sintaxis al intentar inicializar matrices con expresiones no constantes.

Ejemplo de error de sintaxis:

public $var = array(
    1 => 4,
    2 => (4 1), // Syntax error
);

Problema subyacente:

El error surge de una limitación en PHP 5.5 y versiones anteriores, donde solo se permitían valores constantes en las declaraciones de propiedades. Esto incluye valores que se pueden evaluar en tiempo de compilación. Sin embargo, el uso de expresiones calculadas, como "4 1", estaba prohibido.

Resolución en PHP 5.6:

Esta limitación se eliminó en PHP 5.6 con la introducción de expresiones escalares constantes. Esta característica permite la siguiente sintaxis:

public $var = array(
    1 => 4,
    2 => (4 1),
);

public $var = 4 1;

Conclusión:

El error de sintaxis encontrado en versiones anteriores de PHP al inicializar propiedades de clase con expresiones no constantes se ha resuelto en PHP 5.6 y versiones posteriores. Las expresiones escalares constantes ahora permiten a los desarrolladores inicializar propiedades con valores calculados que se pueden evaluar en tiempo de compilación.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3