Hàm settype() trong PHP

Hàm settype() trong PHP
Hàm settype() trong PHP

Chức năng của Hàm settype() trong PHP

Hàm settype() trong PHP dùng để chuyển kiểu dữ liệu từ một loại này sang một loại khác, những kiểu dữ liệu đó là: integer, string, array, object, double, NULL, boolean,...

Cú pháp của Hàm settype() trong PHP

settype($biến_dữ_liệu, "kiểu_dữ_liệu");

$biến_dữ_liệu: Biến chứa dữ liệu.

kiểu_dữ_liệu: Kiểu dữ liệu cần chuyển đến (Ví dụ: integer, string, integer,....).

Code Hàm settype() trong PHP

<?php 
$bienstr = "35"; // string
settype($bienstr, "integer"); // Đổi thành kiểu dữ liệu integer
echo gettype($bienstr)."<br>"; // integer

$bienint = 29; // integer
settype($bienint, "string"); // Đổi thành kiểu dữ liệu string
echo gettype($bienint)."<br>"; // string

$bienboolean = true; // boolean
settype($bienboolean, "integer"); // Đổi thành kiểu dữ liệu integer
echo gettype($bienboolean)."<br>"; // integer
?>

Kết quả:

integer
string
integer

Chạy Thử

Những lưu ý khi sử dụng settype() trong PHP

settype() tác động trực tiếp lên biến được truyền vào, vì vậy cần hiểu rõ kết quả sau khi chuyển kiểu trước khi sử dụng giá trị đó ở các bước tiếp theo. Việc lựa chọn kiểu dữ liệu cũng nên dựa trên mục đích xử lý thay vì chỉ chuyển đổi để tránh lỗi tạm thời.

settype() có làm thay đổi giá trị ban đầu không?

Có. settype() không tạo ra một biến mới mà thay đổi kiểu dữ liệu của chính biến được truyền vào. Giá trị có thể được chuyển đổi theo quy tắc của PHP, nên kết quả sau đó đôi khi không còn giống hoàn toàn cách biểu diễn ban đầu.

Chẳng hạn, khi chuyển một chuỗi chứa số sang kiểu integer, biến sẽ trở thành số nguyên và không còn là chuỗi như trước:

<?php
$gia_tri = "125";

settype($gia_tri, "integer");

var_dump($gia_tri);
?>

Vì biến đã bị thay đổi trực tiếp, nếu chương trình vẫn cần giá trị ở kiểu dữ liệu cũ thì nên cân nhắc trước khi gọi settype(). Đây là điểm khác biệt đáng chú ý so với cách ép kiểu tạo ra một giá trị mới trong quá trình biểu thức được xử lý.

settype() trả về gì khi chuyển kiểu thất bại?

settype() trả về true khi chuyển kiểu thành công và false nếu không thể thực hiện chuyển đổi. Do đó, khi dữ liệu đến từ người dùng hoặc nguồn bên ngoài, có thể kiểm tra kết quả trước khi tiếp tục xử lý.

<?php
$du_lieu = "125";

if (settype($du_lieu, "integer")) {
    echo "Chuyển kiểu thành công";
} else {
    echo "Không thể chuyển kiểu";
}
?>

Cách kiểm tra này đặc biệt hữu ích trong các đoạn xử lý dữ liệu có yêu cầu rõ ràng về kiểu. Không nên chỉ dựa vào việc PHP tự chuyển đổi dữ liệu rồi mặc định rằng kết quả luôn đúng với mong muốn của chương trình.

Khi nào nên dùng settype() thay vì ép kiểu trực tiếp?

Nên dùng settype() khi cần thay đổi kiểu của chính một biến và muốn thao tác này được thể hiện rõ ràng trong mã nguồn. Hàm này phù hợp với những tình huống biến cần tiếp tục được sử dụng nhiều lần sau khi đã chuyển kiểu.

Ngược lại, nếu chỉ cần chuyển kiểu cho một giá trị trong một phép tính hoặc biểu thức mà không muốn thay đổi biến ban đầu, ép kiểu trực tiếp thường gọn hơn:

<?php
$gia_tri = "50";

$so = (int) $gia_tri;

echo $so;
?>

Vì vậy, lựa chọn giữa settype() và ép kiểu không chỉ phụ thuộc vào kết quả mong muốn mà còn phụ thuộc vào việc có cần giữ nguyên biến ban đầu hay không. Xác định rõ mục đích trước khi chuyển kiểu sẽ giúp mã PHP dễ đọc và hạn chế những thay đổi dữ liệu ngoài ý muốn.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm settype() trong PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm settype() trong PHP
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 *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !