"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > As propriedades da classe PHP podem ser inicializadas com expressões não constantes?

As propriedades da classe PHP podem ser inicializadas com expressões não constantes?

Publicado em 2024-11-10
Navegar:384

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

Enigma de inicialização de classe PHP: avaliando expressões em declarações de propriedade

A documentação do PHP determina que as declarações de propriedade de classe podem ser inicializadas com valores constantes. No entanto, os usuários encontraram erros de sintaxe ao tentar inicializar matrizes com expressões não constantes.

Exemplo de erro de sintaxe:

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

Problema subjacente:

O erro decorre de uma limitação no PHP 5.5 e versões anteriores, onde apenas valores constantes eram permitidos em declarações de propriedade. Isso inclui valores que podem ser avaliados em tempo de compilação. No entanto, o uso de expressões calculadas, como "4 1", foi proibido.

Resolução no PHP 5.6:

Essa limitação foi eliminada no PHP 5.6 com a introdução de expressões escalares constantes. Este recurso permite a seguinte sintaxe:

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

public $var = 4 1;

Conclusão:

O erro de sintaxe encontrado em versões anteriores do PHP ao inicializar propriedades de classe com expressões não constantes foi resolvido em PHP 5.6 e versões posteriores. Expressões escalares constantes agora permitem que os desenvolvedores inicializem propriedades com valores calculados que podem ser avaliados em tempo de compilação.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3