Tôi không biết bạn đã đặt câu hỏi nào trong bối cảnh nào. Bởi vì kiểu dữ liệu của một biến php phụ thuộc vào kiểu dữ liệu mà một cột trong bảng của bạn có. Nếu cột có kiểu dữ liệu "int" trong mysql, bạn nhận được một số nguyên trong php (không phải là một chuỗi).
Nhưng dù sao, bạn có thể sử dụng hàm is_numeric(), is_int() hoặc gettype() php để biết kiểu dữ liệu của giá trị trả về từ Mysql. Vấn đề với is_numeric() là nó trả về true ngay cả khi biến chứa chuỗi số, ví dụ: "2". Nhưng gettype() sẽ trả về "chuỗi" và is_int() sẽ luôn trả về false trong ví dụ được đề cập tức là "2".
Một khi bạn biết kiểu dữ liệu của một giá trị trả về bạn có thể ràng buộc các biến php để duy trì loại theo loại đúc như thế này:
// Suppose this is the returned value from mysql and
// you do not know its data type.
$foo = "2";
if (gettype($foo) == "string"){
$foo = (string) $foo;
}
Bạn có thể thực hiện một số kiểm tra cho những gì kiểu dữ liệu biến đã và sau đó đúc nó cho phù hợp.
Tôi hy vọng câu trả lời này sẽ hữu ích. Chúc may mắn!:)
Nó đáng chú ý là PHP không thể ho ld số nguyên lớn hơn 'PHP_INT_MAX' (2.147.483.647 trong máy tính của tôi). Điều đó có thể lưu trữ một cách an toàn một INT đã ký nhưng không phải là một INT không dấu hoặc bất cứ điều gì lớn hơn. –