Y a-t-il une différence particulière entre intval et (int) ?
Exemple :
$product_id = intval($_GET['pid']);
$product_id = (int) $_GET['pid'];
Y a-t-il une différence particulière entre les deux lignes de code ci-dessus ?
Y a-t-il une différence particulière entre intval et (int) ?
Exemple :
$product_id = intval($_GET['pid']);
$product_id = (int) $_GET['pid'];
Y a-t-il une différence particulière entre les deux lignes de code ci-dessus ?
intval()
peut être a passé une base à partir desquels on peut se convertir. (int)
ne peut pas.
int intval( mixed $var [, int $base = 10 ] )
Une chose à noter à propos de la différence entre (int)
y intval()
: intval()
traite les variables qui sont déjà int
et float
s comme ne nécessitant aucune conversion, quel que soit l'argument de base (depuis PHP 5.3.5 au moins). Ce comportement n'est pas le plus évident, comme le montre l'exemple de l'application commentaires sur la page de documentation PHP et répété sans vergogne ici :
$test_int = 12;
$test_string = "12";
$test_float = 12.8;
echo (int) $test_int; // 12
echo (int) $test_string; // 12
echo (int) $test_float; // 12
echo intval($test_int, 8); // 12 <-- WOAH!
echo intval($test_string, 8); // 10
echo intval($test_float, 8) // 12 <-- HUH?
Je pense qu'il y a au moins une différence : avec intval vous pouvez spécifier quelle base doit être utilisée comme second paramètre (base 10 par défaut) :
var_dump((int)"0123", intval("0123"), intval("0123", 8));
vous obtiendra :
int 123
int 123
int 83
La chose qui intval
fait qu'un simple moulage ne fait pas est la conversion de base :
int intval ( mixed $var [, int $base = 10 ] )
Mais si la base est de 10, intval
devrait être le même qu'un cast (à moins que vous ne soyez pointilleux et que vous mentionniez que l'un fait un appel de fonction et pas l'autre). Comme indiqué sur la page page de manuel :
Les règles communes de la distribution des nombres entiers s'appliquent.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.