Hàm intval() trong PHP dùng để làm gì?

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

Định Nghĩa.

Hàm intval trong PHP có tác dụng chuyển đổi một biến hoặc một giá trị sang kiểu số nguyên (integer).

Cú pháp.

Cú pháp:

intval ( mixed $var [, int $base = 10 ] ) : int

Hàm có hai tham số, tham số đầu tiên là bắt buộc và tham số thứ 2 là không bắt buộc. Hàm sẽ chuyển đổi giá trị của tham số var về một số nguyên (integer) với cơ số base, mặc định là cơ số 10. Nếu bạn truyền một object thì lập tức sẽ nhận thông báo lỗi E_NOTICEvà hàm sẽ return về 1.

Trong đó:

  • $var Biến chứa giá trị cần chuyển đổi sang kiểu số nguyên. $var có thể là một biểu thức, một giá trị hoặc một hàm có return, tuy nhiên bạn không thể truyền một object vì sẽ bị lỗi ngay.
  • $base Biến chứa cơ số cần chuyển đổi, mặc định là cơ số 10.
  • Lưu ý: Một số lưu ý với $base như sau:
    • Nếu $base có giá trị 0 thì kết quả cơ số sẽ trả về theo định dạng của $var
    • Nếu $var có giá trị bắt đầu bằng 0x hoặc 0X thì kết quả sẽ trả về cơ số 16
    • Nếu $var có giá trị bắt đầu bằng 0 thì kết quả sẽ trả vê cơ số 8
    • Các trường hợp còn lại sẽ trả về cơ số 10

Giá trị trả về.

  • Trả về số nguyên nếu thành công, 0 nếu thất bại. Nếu bạn truyền vào một mảng rỗng thì sẽ trả về 0, mảng không rỗng sẽ trả về 1.
  • Giá trị trả về tối đa sẽ phụ thuộc vào hệ điều hành mà bạn đang sử dụng, giả sử hệ điều hành 32bit thì kết quả sẽ nằm trong khoảng -2147483648 tới 2147483647.

.

Ví dụ.

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(4200000000000000000);   // 0
echo intval('4200000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('hoclaptrinh', 'thehalfheart'));     // 1
?>

Chú ý.

  • Tham số cơ sở không có hiệu lực trừ khi tham số var là một chuỗi ký tự.
  • trên PHP 5.1.0 Khởi chạy một cảnh báo loại E_NOTICE và trả về 1 khi biến truyền vào là một đối tượng.

Hàm liên quan.

Thông tin thêm.

  • Khi ta sử dụng hàm intval (NULL) cũng trả về 0.

  • Dường như intval đang diễn giải các chuỗi số hợp lệ khác nhau giữa PHP 5.6 và 7.0 trên một mặt và mặt khác là PHP 7.1.

    <?php
    echo intval('1e5');
    ?>

    sẽ trả về 1 trên PHP 5.6 và PHP 7.0, nhưng nó sẽ trả về 100000 trên PHP 7.1.

  • Hãy cẩn thân khi sử dụng intval().

    <?php
    $n="19.99";
    print intval($n*100); // prints 1998
    print intval(strval($n*100)); // prints 1999
    ?>

 

Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm intval() trong PHP. 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 các 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