Je suis en PHP 8.2+.
Je fais cette fonction - qui n'a aucun intérêt intrinsèque - uniquement pour tester le concept du typage d'une valeur de retour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?php
function from_digit_to_string(integer $input_number):string{
	$chiffres = ['zéro', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept'];
	if($input_number < count($chiffres)){
		return $chiffres[$input_number];
	}
	return $input_number;
}
echo from_digit_to_string(2);//deux
echo from_digit_to_string(9);//9 est transformé en string alors que je m'attendais à une erreur fatale.
?>
Je pense que mes commentaires suffisent à comprendre ma question : pourquoi 9, un entier en entrée ne provoque pas d'erreur mais est transformé en string ?
Je pensais que je serais obligée de mettre return strval($input_number); pour respecter le type de la valeur de retour.