(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)\" ?
(41)" ? " /> (4 1)" ? " />
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!