Home » Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

PHP data checking functions (isset, empty, ...)

by Tan Nguyen
12 minutes read

Tiếp tục series học PHP căn bản, bài này chúng ta sẽ tìm hiểu về một số hàm dùng để kiểm tra dữ liệu hoặc biến về sự tồn tại của nó. Và những lợi ích của nó trong lập trình website PHP.

Có rất nhiều hàm kiểm tra dữ liệu giá trị của một biến trong PHP. Mỗi hàm sẽ có một chức năng phụ thuộc vào từng loại biến và cách sử dụng khác nhau, Nhưng mình chỉ giới thiệu các hàm thông dụng thường hay dùng đó là isset(), empty() và is_null(),….

Tất cả các hàm được liệt kê trên này đều trả về một giá trị boolean. Nó sẽ rất có ích cho các bạn trong việc làm web sử dụng ngôn ngữ php. Nhưng nếu các chức năng này không được sử dụng đúng cách, chúng có thể gây ra các kết quả không mong muốn.

kiem tra du lieu isset php

kiem tra du lieu isset php

Hàm isset($value)

Về hàm này mình đã từng nói sơ qua và áp dụng ví dụ rất nhiều lầm ở các bài viết trước đây rồi. Tác dụng của nó dùng để kiểm tra biến $value có tồn tại hay không. Nó sẽ trả về true chỉ khi biến không phải là null.

Thông thường bạn hay dùng hàm này để kiểm tra một biến trước khi xử lý thao tác đến nó.

Cú pháp

isset($value1, $value2 ......)

Tham số

  • $value1: Là biến thứ nhất cần kiểm tra (bắt buộc phải có)
  • $value2 ,…$value_n các biến còn lại cần kiểm tra( có thể có hoặc không)
<?php
$data = 'phpcanban';
if (isset($data))
    echo 'Biến này tồn tại';
else
    echo 'Biến này không tồn tại';
?>

Hàm isset() được sử dụng trong trường hợp nào

Trong quá trình biên dịch nếu trong code có sử dụng một biến không tồn tại thì trình biên dịch sẽ ngưng xử lý và thông báo lỗi ngay, chính vì vậy thông thường những trường hợp mà ta không chắc chắn là biến đó luôn tồn tại thì trước khi sử dụng hãy kiểm tra nó bằng isset.

Ngoài ra nó còn có một số ứng dụng sau:

  • Thường được sử dụng trong From kiểm tra sự xác định của biến
  • Kiểm tra sự xác định của phần tử trong mảng phục vụ cho xử lý và xuất giá trị trong mảng

Ví dụ:

//kiểm tra giá trị phần tử trong mảng
<?php
$var = array(
    "php",
    'laptrinh',
    null,
    27,
    "php can ban",
    null
);
foreach ($var as $value) {
    if (isset($value)) {
        echo 'this var is set <br />';
    } else {
        echo 'this var is not set <br />';
    }
}
/*output:
this var is set
this var is set
this var is not set
this var is set
this var is set
this var is not set*/

Nếu biến đã được khai báo, nhưng sau đó lại được loại bỏ bởi hàm unset() thì khi kiểm tra với hàm isset() sẽ trả về kết quả FALSE.

Khi sử dụng isset() trên các thuộc tính đối tượng không thể tiếp cận, phương thức nạp chồng __isset () sẽ được gọi, nếu được khai báo.

Các bạn có thể tham khảo thêm về hàm isset tại đây.

Hàm empty($var)

Nói nôm na là hàm để kiểm tra biến $var có phải giá trị rỗng hay không. Tất cả các giá trị như: số 0, giá trị null, giá trị rỗng, giá trị false đều được quy về là empty.

Cú pháp

empty($var);

Tham số

Tham số của hàm empty($var) chỉ hỗ trợ khi chỉ có mỗi một biến $var.

Nếu biến $var không tồn tại thì hàm này vẫn không báo lỗi và sẽ trả kết quả về false.

Những giá trị sau đấy được xem là rỗng:

  • “” (Chuỗi)
  • 0 (0 là số nguyên)
  • 0.0 (0 là số thực)
  • “0” (0 là chuổi)
  • NULL
  • FALSE
  • array() (là mảng rỗng)
  • $var; (biến chưa khai báo, không có giá trị)
Hàm empty($var) sẽ tương đương !isset($var) hoặc $var == false.
Cũng có thể ở một số trường hợp isset($var) trả về TRUE nhưng empty($var) lại trả về FALSE. Vì thế trong quá trình thiết lập các biểu thức điều kiện cần xác định rõ để tạo biểu thức thích hợp
<?php
$data = [];
if (empty($data))
    echo 'Biến này rỗng';
else
    echo 'Biến này không rỗng';

Hàm empty() được sử dụng trong trường hợp nào

  • Sử dụng để kiểm tra giá trị biến xem có rỗng hay không
  • Phục vụ cho qua trình kiểm tra chuẩn hóa dữ liệu khi thao tác đến nhận giá trị từ Form
//kiểm tra dữ liệu từ form đăng nhập
if (empty($_POST['password'])){
    echo 'Bạn chưa nhập tên mật khẩu';
}

Các bạn có thể tham khảo thêm về hàm empty tại đây.

Hàm is_null($var)

Hàm sẽ kiểm tra biến $var có phải giá trị null không.

Nói cách khác, nó chỉ trả về true khi biến là null . is_null () trái ngược với isset (), ngoại trừ một điểm khác biệt là có thể áp dụng ngay bây giờ cho các biến không xác định

<?php
$demo= null;
if (is_null($demo))
    echo 'Biến này là null';
else
    echo 'Biến này không phải là null';

Các bạn có thể tham khảo thêm về hàm is_null tại đây.

Một số hàm kiểm tra dữ liệu cho biến khác

is_array($var)

Hàm is_array() kiểm tra xem một biến $var có phải là một mảng hay không.

Hàm này trả về true nếu biến là một mảng, nếu không, nó trả về false / nothing.

<?php
$yes = array('this', 'is', 'an array');

echo is_array($yes) ? 'Array' : 'not an Array';
echo "\n";

$no = 'this is a string';

echo is_array($no) ? 'Array' : 'not an Array';
?>

is_string($var)

Kiểm tra biến $var có phải kiểu chuỗi hay không.

<?php
$values = array(false, true, null, 'abc', '23', 23, '23.5', 23.5, '', ' ', '0', 0);
foreach ($values as $value) {
    echo "is_string(";
    var_export($value);
    echo ") = ";
    echo var_dump(is_string($value));
}
?>

is_int($var) hoặc is_integer($var)

Kiểm tra biến $var có phải kiểu INT hay không.

<?php
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
    echo "is_int(";
    var_export($value);
    echo ") = ";
    var_dump(is_int($value));
}
?>

is_float($var)

Kiểm ta biến $var có phải kiểu float hay không

var_dump(is_float(27.25));
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7));  //Scientific Notation
var_dump(is_float(true));
?>

is_double($var)

Kiểm tra biến $var có phải kiểu double hay không.

<?php
$var_name=127.55;
if (is_double($var_name))
echo 'This is a double value.<br>';
else
echo 'This is not a double value.<br>';
echo '<br>';
var_dump(is_double(85));
echo '<br>';
var_dump(is_double(1e8));
echo '<br>';
var_dump(is_double(true));
echo '<br>';
var_dump(is_double(array(23.3, 56, 6)));
?>

in_array($needle, $haystackarray)

Kiểm tra giá trị $needle có trong mảng $haystackarray hay không

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?>

array_key_exists($key, $searcharray)

Kiểm tra key $key có trong mảng $searcharray hay không

<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
    echo "The 'first' element is in the array";
}
?>

is_numeric($var)

Hàm có tác dụng kiểm tra xem một biến có phải là số hay không

<?php
$demo = 20;
if (is_numeric($demo))
    echo 'Biến này là số';
else
    echo 'Biến này không phải là số';
?>

Còn có vô số hàm khác mà mình không thể liệt kê hết được, các bạn có thể vào php.net để tìm tòi và lục lọi những hàm phù hợp với bài toán của các bạn nhé. Các bạn có thể thao khảo link về function tại đây.

Kết thúc

Bạn sẽ phải thường xuyên dùng đến các hàm trên trong quá trình học tập cũng như làm việc với lập trình PHP, qua bài viêt mong bạn đã hình dung được cách sử dụng của chúng và ứng dụng vào mỗi trường hợp của bài toán thật phù hợp.

Mỗi bài viết về kiến thức học PHP của mình đều có thể chưa hoàn toàn đầy đủ, cho nên mong các bạn hãy tra google khi tham khảo và mong bạn có thể gửi lại comment bổ sung bên dưới để mình có thể hoàn thiện lại bài viết hơn. Cảm ơn các bạn!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!

Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ

5/5 - (3 votes)

Related Posts

5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More

0
Would love your thoughts, please comment.x
()
x