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

Cast de type silencieux

<?php

//declare(strict_types=1);

function foo(float $x): int {
    var_dump($x);
    
    return $x;
}

var_dump(foo(1));
//var_dump(foo(1.1));

Un entier est un flottant, mais l’inverse n’est pas toujours vrai. Pour PHP, passer un entier dans une fonction qui type son argument en float transforme cet entier en flottant. La conversion inverse de flottant en entier est également possible, au retour. Cela se produit lorsque strict_types n’est pas activé et lorsque le flottant n’a pas de partie décimale, comme c’est le cas ici.

Sinon, c’est une erreur de type, ou un avertissement de perte de précision.

See Also

PHP Error Messages

PHP Features

Last updated: 04 October 2026