これは私にとって大きな問題ではありません(私が知る限り)、それは私が興味を持っていることです。is_numeric
しかし、ユーザー入力値を検証するためにover preg_match
(またはその逆)を使用することの主な違いは何ですか(またはその逆)。
例1:
<?php
$id = $_GET['id'];
if (!preg_match('/^[0-9]*$/', $id)) {
// Error
} else {
// Continue
}
?>
例2:
<?php
$id = $_GET['id'];
if (!is_numeric($id)) {
// Error
} else {
// Continue
}
?>
どちらもまったく同じだと思いますが、後で問題を引き起こす可能性のある特定の違いはありますか?それらを違うものにする「最良の方法」または私が見ていなかった何かがありますか?