Maison > développement back-end > tutoriel php > Pourquoi ne puis-je pas initialiser les propriétés de classe PHP avec des expressions simples telles que \'2 => (4 1)\' ?

Pourquoi ne puis-je pas initialiser les propriétés de classe PHP avec des expressions simples telles que \'2 => (4 1)\' ?

Susan Sarandon
Libérer: 2024-11-01 12:49:58
original
877 Les gens l'ont consulté

Why Can't I Initialize PHP Class Properties with Simple Expressions Like (41)" ? " /> (4 1)" ? " />

Déclarations de propriétés de classe PHP avec des expressions simples

Question :

Malgré la documentation PHP indiquant que l'initialisation de la propriété peut inclure des valeurs constantes, tenter de initialiser un tableau en utilisant des expressions simples comme "2 => (4 1)" ou attribuer une valeur numérique avec "4 1" entraîne des erreurs de syntaxe. Pourquoi ces expressions ne sont-elles pas acceptées ?

Réponse :

Cette limitation était abordé dans PHP version 5.6 avec l'introduction des expressions scalaires constantes.

Grâce à cette nouvelle fonctionnalité, vous pouvez désormais fournir des expressions scalaires impliquant des littéraux numériques et de chaîne et/ou des constantes dans divers contextes, notamment déclarations de constantes et de propriétés :

<code class="php">class C {
    const THREE = TWO + 1;
    const ONE_THIRD = ONE / self::THREE;
}</code>
Copier après la connexion

Par conséquent, les expressions qui provoquaient auparavant des erreurs de syntaxe sont désormais valides dans PHP 5.6 et versions ultérieures :

<code class="php">public $var = array(
    1 => 4,
    2 => (4+1),
);
public $var = 4+1;</code>
Copier après la connexion

Ces expressions peuvent être évaluées au moment de la compilation et ne vous fiez pas aux informations d'exécution, répondant aux exigences relatives aux valeurs constantes d'initialisation des propriétés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal