(4 1)\" ?-tutoriel php-php.cn">

Maison  >  Article  >  développement back-end  >  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
Susan Sarandonoriginal
2024-11-01 12:49:58792parcourir

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>

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>

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!

Déclaration:
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