我认为filter_input(type, name, FILTER_SANITIZE_NUMBER_INT)
会将字符串转换为int,但似乎没有。
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
if (isset($id) && is_int($id))
还有其他干净但有效的方法吗?
答案 0 :(得分:3)
你总是可以施展它:
$id = (int) $_GET['id'];
答案 1 :(得分:3)
您可以通过各种方式将字符串转换为整数:
$id = (int)$_GET['id']; // Like wogsland showed.
$id = intval($_GET['id']); // This works but is around twice as slow as (int).
以下是我发现的一些测试,比较两者:Fastest way to convert string to integer in PHP
答案 2 :(得分:1)
通过(int)$ _ GET ['id']转换为int似乎是最快的选择。您还可以使用is_numeric()来检查字符串是否为数字。
请注意,filter_var可以在失败时返回布尔值false,将其作为整数0进行求值。
您可以在manual中了解有关字符串转换的更多信息。
手册中的警告: 可以转换布尔值,浮点数和字符串,但是对于其他类型,转换为整数的行为是未定义的。不要依赖任何观察到的行为,因为它可能会在没有通知的情况下发生变化!