Hàm is_numeric() trong PHP
Trần Thị Vân
- 1164
- 08/08/2025
Chức năng của Hàm is_numeric() trong PHP
Hàm is_numeric() trong PHP dùng để kiểm tra kiểu dữ liệu của biến truyền vào có phải là kiểu dữ liệu số thực(double, float) hoặc số nguyên (integer) hay không, nếu phải thì trả về true, nếu không phải thì trả về false.
Cú pháp của Hàm is_numeric() trong PHP
$kết_quả = is_numeric($biến_dữ_liệu);
$biến_dữ_liệu: Biến chứa dữ liệu.
$kết_quả: Nếu kiểu dữ liệu của biến là kiểu dữ liệu số thực(double, float) hoặc số nguyên (integer) thì trả về true, nếu kiểu dữ liệu của biến không phải là kiểu dữ liệu số thực(double, float) và số nguyên (integer) thì trả về false.
Code Hàm is_numeric() trong PHP
<h2>Kiểm tra biến chứa số nguyên thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) hay không</h2>
<?php
$biensonguyen = 35;
if(is_numeric($biensonguyen)){
echo 'Biến $biensonguyen thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) <br>';
}else{
echo 'Biến $biensonguyen không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) <br>';
}
// Kết quả: Biến $biensonguyen thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float)
?>
<h2>Kiểm tra biến chứa số thập phân thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) hay không</h2>
<?php
$bienthapphan = 35.5;
if(is_numeric($bienthapphan)){
echo 'Biến $bienthapphan thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) <br>';
}else{
echo 'Biến $bienthapphan không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) <br>';
}
// Kết quả: Biến $bienthapphan thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float)
?>
<h2>Kiểm tra biến chứa chuỗi có thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) hay không</h2>
<?php
$bienchuoi = "Web Mới";
if(is_numeric($bienchuoi)){
echo 'Biến $bienchuoi thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) <br>';
}else{
echo 'Biến $bienchuoi không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) <br>';
}
// Kết quả: Biến $bienchuoi không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float)
?>
<h2>Kiểm tra biến mảng thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) hay không</h2>
<?php
$mang = array("Lực","Vân","Quỳnh");
if(is_numeric($mang)){
echo 'Biến $mang thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) <br>';
}else{
echo 'Biến $mang không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) <br>';
}
// Kết quả: Biến $mang không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float)
?>
<h2>Kiểm tra biến đối tượng thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) hay không</h2>
<?php
$nhanVien = (object) [
'ten' => 'Bùi Tấn Lực',
'tuoi' => '35'
];
if(is_numeric($nhanVien)){
echo 'Biến $nhanVien thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) <br>';
}else{
echo 'Biến $nhanVien không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) <br>';
}
// Kết quả: Biến $nhanVien không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float)
?>
Kết quả:
/////Kiểm tra biến chứa số nguyên thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) hay không
Biến $biensonguyen thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float)
/////Kiểm tra biến chứa số thập phân thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) hay không
Biến $bienthapphan thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float)
/////Kiểm tra biến chứa chuỗi có thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) hay không
Biến $bienchuoi không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float)
/////Kiểm tra biến mảng thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) hay không
Biến $mang không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float)
/////Kiểm tra biến đối tượng thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float) hay không
Biến $nhanVien không thuộc kiểu dữ liệu số nguyên (integer) hoặc số thực(double, float)
Những lưu ý khi sử dụng hàm is_numeric() trong PHP
Hàm is_numeric() hữu ích khi cần xác định một giá trị có được PHP xem là dạng số hay không. Tuy nhiên, kết quả kiểm tra có thể khác với suy nghĩ thông thường, đặc biệt khi dữ liệu đầu vào là chuỗi. Hiểu rõ cách hàm xử lý từng kiểu dữ liệu sẽ giúp hạn chế lỗi khi nhận dữ liệu từ biểu mẫu, URL hoặc API.
is_numeric() kiểm tra được những kiểu dữ liệu nào?
is_numeric() có thể kiểm tra các giá trị số cũng như chuỗi có nội dung biểu diễn một số hợp lệ. Vì vậy, không nên hiểu đơn giản rằng hàm này chỉ trả về true khi biến có kiểu int hoặc float.
Chẳng hạn, một số nguyên, số thực hoặc chuỗi chứa giá trị số đều có thể vượt qua phép kiểm tra. Ngược lại, mảng, đối tượng hoặc chuỗi có thêm ký tự không thuộc biểu diễn số sẽ không được xem là giá trị số.
<?php
$values = [100, 12.5, "250", "12abc", "PHP"];
foreach ($values as $value) {
var_dump(is_numeric($value));
}
?>
Khi xử lý dữ liệu thực tế, nên kiểm tra is_numeric() trước khi thực hiện các phép tính hoặc chuyển đổi liên quan đến số. Điều này đặc biệt hữu ích với dữ liệu mà người dùng nhập vào, bởi giá trị nhận được thường ở dạng chuỗi dù người dùng nhập một con số.
is_numeric() có nhận diện chuỗi chứa số trong PHP không?
Có. Đây là điểm quan trọng cần lưu ý khi sử dụng hàm. Một chuỗi nếu biểu diễn một giá trị số hợp lệ có thể được is_numeric() xác định là số.
Ví dụ, chuỗi "123" có thể trả về true, trong khi "123abc" trả về false. Hàm không chỉ kiểm tra xem chuỗi có bắt đầu bằng số hay không mà đánh giá toàn bộ giá trị theo quy tắc nhận diện số của PHP.
<?php
var_dump(is_numeric("123"));
var_dump(is_numeric("123.45"));
var_dump(is_numeric("123abc"));
?>
Do đó, nếu mục tiêu là xác định dữ liệu đầu vào có thể dùng như một giá trị số, is_numeric() thường phù hợp hơn việc chỉ kiểm tra một phần chuỗi. Sau khi xác thực, bạn có thể tiếp tục chuyển đổi hoặc xử lý giá trị theo nhu cầu của chương trình.
Phân biệt is_numeric() với is_int() và is_float()
Ba hàm này đều dùng để kiểm tra dữ liệu liên quan đến số nhưng mục đích không giống nhau. is_numeric() quan tâm đến việc giá trị có được biểu diễn dưới dạng số hay không, còn is_int() và is_float() kiểm tra kiểu dữ liệu cụ thể của biến.
| Hàm | Mục đích kiểm tra |
|---|---|
| is_numeric() | Xác định giá trị có phải dạng số mà PHP có thể nhận diện hay không, bao gồm cả một số chuỗi biểu diễn số. |
| is_int() | Xác định biến có đúng kiểu số nguyên hay không. |
| is_float() | Xác định biến có đúng kiểu số thực hay không. |
Ví dụ, với giá trị "100", is_numeric() có thể trả về true, nhưng is_int() không xem đây là số nguyên vì giá trị vẫn là một chuỗi. Vì vậy, hãy chọn hàm dựa trên mục đích kiểm tra thay vì dùng chúng thay thế cho nhau.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm is_numeric() trong PHP.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *