Định nghĩa Hàm is_int() trong PHP

17/06/2020 - lượt xem
Chia sẻ
 
Rate this post

Định Nghĩa

=> Hàm is_int() trong PHP dùng để kiểm tra biến có thuộc kiểu số nguyên hay không. Hàm tương thích được với PHP4, PHP5, PHP7

Cú Pháp

cú pháp:

is_int ( mixed $var ) : bool

Trong đó:
$var là biến cần kiểm tra.

Mô tả về hàm

Hàm is_int() trong PHP sẽ kiểm tra biến có thuộc kiểu số nguyên hay không. Nếu biến thuộc kiểu số nguyên hàm sẽ trả về TRUE, ngược lại nếu biến không thuộc kiểu số nguyên hàm sẽ trả về FALSE.

Ví Dụ

VD1:
Code:

$var = 24;
if (is_int($var)) {
    echo 'biến thuộc kiểu số nguyên';
}else{
    echo 'biến không thuộc kiểu số nguyên';
}
// Đoạn code trên gồm một biến cần kiểm tra là $var có giá trị = 24.
// Nếu $var là số nguyên kết quả => biến thuộc kiểu số nguyên
// Nếu $var không phải số nguyên kết quả => biến không thuộc kiểu số nguyên

Kết quả:

biến thuộc kiểu số nguyên

VD2
Code:

$var = 24.3535;
if (is_int($var)) {
    echo 'biến thuộc kiểu số nguyên';
}else{
    echo 'biến không thuộc kiểu số nguyên';
}

Kết quả:

biến không thuộc kiểu số nguyên // Do biến trên có là một số có dấu thập phân.

VD3
Code:

$var = 'codetutam.com'; 
if (is_int($var)) { 
echo 'biến thuộc kiểu số nguyên';
 }
else{ 
echo 'biến không thuộc kiểu số nguyên';
 }

Kết quả:

biến không thuộc kiểu số nguyên // Do giá trị của biến trên là một chuỗi ký tự string.

Hàm liên quan.

is_bool () – Kiểm tra một biến có phải kiểu dữ liệu boolean.

is_float () – Xác định một biến có kiểu số thập phân

is_numeric () – Kiểm tra một biến có phải kiểu số

is_string () – Xác định nếu một biến có phải kiểu chuỗi

is_array () – Xác định nếu một biến là một mảng

is_object () – Xác định nếu một biến có kiểu đối tượng

Những kiến thức bổ trợ cho hàm is_int().

  1. Đôi khi hàm in_int() hoạt động không như mong muốn của bạn.

    Tôi đã thấy rằng is_int() không hoạt động hoàn toàn như tôi mong đợi sau một hồi tìm kiếm trên mạng một hàm gọi là isInteger() do một anh lập trình đẹp trai nào đó viết.
    Nội dung hàm:

    function isInteger($input){ 
        return(ctype_digit(strval($input))); 
    }
    // Trong đó hàm $input là giá trị cần kiểm tra cần kiểm tra. 
    // ctype_digit() là một hàm đùng để Kiểm tra xem tất cả các ký tự trong chuỗi, 
    // văn bản được cung cấp có phải là số không. 
    // strval() là hàm php Lấy giá trị của một biến, ở định dạng chuỗi

    Tìm hiểu về hàm ctype_digit() hay strval()
    Ví dụ về hàm:

    <?php 
    function isInteger($input){ 
      return(ctype_digit(strval($input))); 
    } 
    // Sử dụng hàm is_int
    var_dump(is_int(23)); //bool(true)
    var_dump(is_int("23")); //bool(false)
    var_dump(is_int(23.5)); //bool(false)
    var_dump(is_int(NULL)); //bool(false)
    var_dump(is_int("")); //bool(false)
    
    // Sử dụng hàm isInteger
    var_dump(isInteger(23)); //bool(true)
    var_dump(isInteger("23")); //bool(true)
    var_dump(isInteger(23.5)); //bool(false)
    var_dump(isInteger(NULL)); //bool(false)
    var_dump(isInteger("")); //bool(false)
    
    ?>

    – Ta thấy hai hàm có sự khác nhau ở var_dump(is_int(“23”)); nhìn vào đây giá trị này là một số nhưng is_int() hiểu rằng đây là một chuỗi ký tự (là dạng string không phải số nguyên) => is_int() trả về false.
    – Hàm isInteger() Thực hiện hai bước dùng strval() lấy giá trị của một biến ở dạng string() => dùng ctype_digit() để kiểm tra.
      Hàm ctype_digit() kiểm tra tất cả các giá trị trong một chuỗi chuyền vào có phải số không => Khi truyền một chuổi string thì hàm sẽ lấy giá trị bên trong để kiểm tra nếu giá trị bên trong là số thì trả về true. Khi từ ban đầu truyền vào dịnh dạng đã là số nguyên thì ctype_digit() sẽ trả về false luôn.
    Ví dụ về hàm ctype_digit():

    var_dump(ctype_digit(23)); //bool(false)=> False vì giá trị truyền vào là kiểu định dạng số 
    mà không phải sting
    var_dump(ctype_digit("23")); //bool(true)=> true vì giá trị truyền 
    vào và bên trong chuỗi string là số.
    var_dump(ctype_digit(23.5)); //bool(false)=> False vì giá trị truyền vào là kiểu định dạng số 
    var_dump(ctype_digit(NULL)); //bool(false)=> False vì giá trị truyền vào là kiểu định dạng số 
    var_dump(ctype_digit("")); //bool(false)=> False giá trị bên trong string là rỗng không phải là số.
    

    2. Điều cần lưu ý.
    – Hàm is_int() hoạt động theo kiểu signed (Phụ thuộc vào môi trường hoạt động) vì vậy trên mỗi môi trường thì hàm lại có giá trị khác nhau.
    + Môi trường 32-bit có max value int là 2^32/2 = 2147483647  => Chỉ kiểm tra được các số từ 2147483647  trở xuống.
    + Môi trường 64-bit có max value int là 2^64/2 = 9223372036854775807 => Kiểm tra được các số từ 9223372036854775807.
    Ví dụ mô tả:

    // môi trường 32-bit
    <?php
    is_int( 2147483647 );           // true
    is_int( 2147483648 );           // false
    is_int( 9223372036854775807 );  // false
    is_int( 9223372036854775808 );  // false
    ?>
    
    // Môi trường 64-bit
    <?php
    is_int( 2147483647 );           // true
    is_int( 2147483648 );           // true
    is_int( 9223372036854775807 );  // true
    is_int( 9223372036854775808 );  // false
    ?>

    => Khi ta dùng is_int() không thể biết nó sẽ được hoạt động trên môi trường 32-bit hay 64-bit để đảm bảo một số sẽ được kiểm tra như trên môi trường 64-bit thì hãy sử dùng hàm is_int() kết hợp với hàm is_float()

    <?php
    $small = 2147483648;
    if( is_int($small) || is_float($small) ){
    return true;
    }
    // Vượt qua mọi mọi môi trường 32-bit
    ?>

     

Hi vọng qua bài viết này sẽ giúp các  bạn đã hiểu hơn về hàm is_int() rong PHP biết cách sử dụng đúng cách đúng trường hợp.

Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé.
Cảm ơn bạn đã ghé thăm codetutam.com.

 

 

 

 

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm

      Nguyễn Quang Anh

      Bình luận: