Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

(int) et (ant)

<?php

const INT = static function($x) {return  (int)$x * (int)$x;};
echo (int)(" 123s ");
// fatal error
// echo ((int))(" 123s ");

const ant = static function($x) {return  (int)$x * (int)$x;};
echo (ant)(" 123s ");
echo ((ant))(" 123s ");

Il est possible de stocker une Closure dans une constante, depuis PHP 8.5. Cela signifie que la closure doit être appelée en mettant la constante entre parenthèses : PHP extrait d’abord la valeur de la constante, puis appelle la closure.

Il y a autre chose qui se met entre parenthèses : un transtypage. Et le cast a une priorité très élevée. Ainsi, lorsqu’une constante int est créée, elle invoque toujours le transtypage et ignore la constante.

Les constantes ne devraient peut-être pas être nommées comme des transtypages ?

See Also

PHP Error Messages

PHP Features

Last updated: 11 October 2026