PHP is_numeric или preg_match 0-9 validation

Это не большая проблема для меня (насколько я знаю), это скорее то, что меня интересует. Но в чем основное отличие, если оно есть, использования is_numeric от preg_match (или наоборот) для валидации вводимых пользователем значений.

Пример один:

<?php
    $id = $_GET['id'];
    if (!preg_match('/^[0-9]*$/', $id)) {
        // Error
    } else {
        // Continue
    }
?>

Пример два:

<?php
    $id = $_GET['id'];
    if (!is_numeric($id)) {
        // Error
    } else {
        // Continue
    }
?>

Я предполагаю, что оба варианта делают одно и то же, но есть ли какие-либо специфические различия, которые могут вызвать проблемы в дальнейшем? Есть ли "лучший способ" или что-то, чего я не вижу, что делает их разными.

36
задан Bas Slagter 4 October 2011 в 14:55
поделиться