Tổng hợp các kiểu dữ liệu trong PHP
Trần Thị Vân
- 110
- 24/07/2026
Tìm hiểu đầy đủ các kiểu dữ liệu trong PHP như String, Integer, Float, Boolean, Array, Object, NULL và Resource cùng ví dụ minh họa, cách kiểm tra, ép kiểu và những lưu ý quan trọng khi lập trình PHP, chi tiết như nào hãy cùng chúng tôi phân tích:
Kiểu dữ liệu là nền tảng của mọi chương trình PHP. Dù bạn chỉ viết một đoạn script đơn giản hay phát triển một hệ thống quản lý hàng nghìn người dùng thì việc hiểu rõ từng kiểu dữ liệu sẽ giúp mã nguồn dễ đọc, dễ bảo trì và hoạt động ổn định hơn.
Không ít lập trình viên mới học PHP thường chỉ biết cách khai báo biến mà chưa thực sự hiểu dữ liệu bên trong được lưu trữ như thế nào, khi nào PHP tự động chuyển đổi kiểu, hoặc vì sao hai giá trị nhìn giống nhau nhưng kết quả so sánh lại khác nhau. Chính những điều tưởng chừng nhỏ này lại là nguyên nhân gây ra rất nhiều lỗi trong quá trình phát triển phần mềm.
Bài viết dưới đây sẽ tổng hợp đầy đủ các kiểu dữ liệu trong PHP, cách hoạt động của từng kiểu, ví dụ minh họa, trường hợp sử dụng thực tế cũng như những lưu ý quan trọng giúp bạn lập trình hiệu quả hơn.

Kiểu dữ liệu trong PHP là gì?
Kiểu dữ liệu (Data Type) là cách PHP xác định giá trị mà một biến đang lưu trữ. Mỗi kiểu dữ liệu có đặc điểm riêng về cách lưu, cách xử lý và các phép toán có thể áp dụng.
Không giống nhiều ngôn ngữ lập trình yêu cầu khai báo kiểu dữ liệu ngay từ đầu, PHP sử dụng cơ chế Dynamic Typing. Điều này có nghĩa là kiểu dữ liệu sẽ được PHP xác định tự động dựa trên giá trị được gán.
Ví dụ:
<?php
$ten = "Web Mới";
$nam = 2026;
$gia = 199.99;
?>
Trong ví dụ trên:
- $ten là chuỗi.
- $nam là số nguyên.
- $gia là số thực.
Người lập trình không cần khai báo trước kiểu dữ liệu, PHP sẽ tự nhận biết.
Danh sách các kiểu dữ liệu trong PHP
PHP hiện hỗ trợ nhiều kiểu dữ liệu khác nhau. Trong lập trình hằng ngày, bạn sẽ thường xuyên làm việc với các kiểu sau:
- String (Chuỗi)
- Integer (Số nguyên)
- Float hoặc Double (Số thực)
- Boolean (Đúng hoặc Sai)
- Array (Mảng)
- Object (Đối tượng)
- NULL
- Resource
Mỗi kiểu dữ liệu đều có mục đích sử dụng riêng và phù hợp với từng tình huống cụ thể.
Kiểu chuỗi (String)
String dùng để lưu trữ văn bản, ký tự hoặc một chuỗi ký tự. Đây là kiểu dữ liệu được sử dụng nhiều nhất trong PHP vì hầu hết website đều xử lý thông tin dạng văn bản.
Ví dụ khai báo chuỗi
<?php
$website = "Web Mới";
$email = "admin@example.com";
?>
Chuỗi có thể đặt trong dấu nháy đơn hoặc dấu nháy kép. Tuy nhiên hai cách này có sự khác biệt khi xử lý biến.
Sự khác nhau giữa nháy đơn và nháy kép
Dấu nháy kép cho phép PHP phân tích biến bên trong chuỗi, trong khi dấu nháy đơn sẽ giữ nguyên nội dung.
<?php
$name = "An";
echo "Xin chào $name";
echo 'Xin chào $name';
?>
Kết quả:
- Dòng đầu tiên hiển thị tên của biến.
- Dòng thứ hai hiển thị nguyên văn ký tự $name.
Khi nào nên sử dụng String?
- Họ tên khách hàng.
- Tên sản phẩm.
- Mô tả.
- Địa chỉ.
- Email.
- Nội dung bài viết.
- Tiêu đề website.
Kiểu số nguyên (Integer)
Integer dùng để lưu trữ các số không có phần thập phân.
Ví dụ
<?php
$age = 25;
$year = 2026;
$quantity = 150;
?>
Integer thường được dùng cho:
- ID.
- Số lượng.
- Năm.
- Tuổi.
- Điểm.
- Thứ tự.
Đặc điểm của Integer
- Có thể là số dương.
- Có thể là số âm.
- Có thể biểu diễn ở hệ thập phân, nhị phân, bát phân hoặc thập lục phân.
- Thực hiện các phép toán rất nhanh.
Kiểu số thực (Float)
Float dùng để lưu các số có phần thập phân.
Ví dụ
<?php
$price = 99.99;
$pi = 3.14159;
$discount = 15.5;
?>
Float thường xuất hiện trong:
- Giá sản phẩm.
- Lãi suất.
- Điểm trung bình.
- Kết quả tính toán.
- Tỷ lệ phần trăm.
Lưu ý khi sử dụng Float
Do giới hạn của biểu diễn số thực trong máy tính nên Float đôi khi có sai số rất nhỏ.
<?php
echo 0.1 + 0.2;
?>
Kết quả có thể không chính xác tuyệt đối như mong muốn. Vì vậy trong các bài toán tài chính lớn, nhiều lập trình viên lựa chọn lưu giá trị dưới dạng số nguyên (ví dụ lưu đơn vị đồng thay vì triệu đồng) để tránh sai số.
Kiểu Boolean
Boolean chỉ có hai giá trị:
- true
- false
Đây là kiểu dữ liệu được sử dụng rất nhiều trong các câu lệnh điều kiện.
Ví dụ
<?php
$isLogin = true;
$isAdmin = false;
?>
Boolean thường dùng để kiểm tra:
- Đăng nhập.
- Quyền quản trị.
- Sản phẩm còn hàng.
- Kích hoạt tài khoản.
- Hoàn thành đơn hàng.
Ứng dụng trong câu lệnh điều kiện
<?php
$isLogin = true;
if ($isLogin) {
echo "Đã đăng nhập";
}
?>
Nhờ Boolean mà chương trình có thể đưa ra quyết định thực hiện hay bỏ qua một đoạn mã nhất định.
Kiểu mảng (Array)
Array là kiểu dữ liệu cho phép lưu nhiều giá trị trong cùng một biến. Thay vì tạo hàng chục biến riêng lẻ, bạn có thể gom toàn bộ dữ liệu liên quan vào một mảng để dễ quản lý và xử lý.
Đây là một trong những kiểu dữ liệu được sử dụng nhiều nhất trong PHP, đặc biệt khi làm việc với cơ sở dữ liệu, API, biểu mẫu và xử lý danh sách.
Mảng đánh chỉ số (Indexed Array)
Mảng đánh chỉ số sử dụng các chỉ mục số nguyên bắt đầu từ 0.
<?php
$colors = ["Đỏ", "Xanh", "Vàng"];
echo $colors[0];
echo $colors[1];
?>
Kiểu mảng này phù hợp khi dữ liệu có thứ tự rõ ràng như:
- Danh sách sản phẩm.
- Danh sách bài viết.
- Danh sách hình ảnh.
- Danh sách nhân viên.
Mảng kết hợp (Associative Array)
Khác với mảng đánh chỉ số, mảng kết hợp sử dụng khóa (key) để truy cập dữ liệu.
<?php
$user = [
"name" => "Nguyễn Văn A",
"age" => 25,
"city" => "Hồ Chí Minh"
];
echo $user["name"];
?>
Loại mảng này rất phù hợp để biểu diễn thông tin của một đối tượng như người dùng, sản phẩm hoặc đơn hàng.
Mảng nhiều chiều (Multidimensional Array)
Một mảng có thể chứa nhiều mảng con bên trong.
<?php
$students = [
[
"name" => "An",
"score" => 9
],
[
"name" => "Bình",
"score" => 8
]
];
echo $students[0]["name"];
?>
Mảng nhiều chiều thường được sử dụng khi:
- Lưu danh sách sản phẩm.
- Hiển thị dữ liệu từ MySQL.
- Xử lý dữ liệu JSON.
- Làm việc với API.
Duyệt mảng bằng foreach
PHP cung cấp vòng lặp foreach để duyệt toàn bộ phần tử trong mảng một cách đơn giản.
<?php
$fruits = ["Táo", "Cam", "Xoài"];
foreach ($fruits as $fruit) {
echo $fruit;
}
?>
Đây là cách được sử dụng phổ biến vì mã nguồn ngắn gọn, dễ đọc và hạn chế lỗi.
Kiểu đối tượng (Object)
Object là kiểu dữ liệu được tạo ra từ lớp (Class). Đây là nền tảng của lập trình hướng đối tượng (OOP) trong PHP.
Một Object có thể chứa:
- Thuộc tính.
- Phương thức.
- Dữ liệu.
- Hành vi.
Ví dụ tạo Object
<?php
class User
{
public $name = "Web Mới";
}
$user = new User();
echo $user->name;
?>
Trong thực tế, Object được dùng để mô hình hóa các đối tượng như:
- Khách hàng.
- Sản phẩm.
- Đơn hàng.
- Danh mục.
- Hóa đơn.
Khi phát triển các dự án lớn bằng Laravel, Symfony hoặc CodeIgniter, Object gần như xuất hiện ở mọi thành phần của ứng dụng.
Kiểu NULL
NULL biểu thị biến chưa có giá trị hoặc không còn chứa dữ liệu.
Ví dụ
<?php
$name = null;
?>
Hoặc:
<?php
$name = "Web Mới";
$name = null;
?>
Khi một biến được gán bằng NULL, PHP xem như biến đó không còn lưu trữ dữ liệu có ý nghĩa.
Khi nào sử dụng NULL?
- Chưa nhập dữ liệu.
- Giá trị chưa xác định.
- Xóa dữ liệu tạm.
- Đánh dấu dữ liệu chưa tồn tại.
Kiểu Resource
Resource là kiểu dữ liệu đặc biệt dùng để lưu tham chiếu đến tài nguyên bên ngoài mà PHP đang quản lý.
Một số tài nguyên thường gặp:
- Tập tin.
- Kết nối cơ sở dữ liệu.
- Kết nối FTP.
- Socket.
- Stream.
Ví dụ mở tập tin
<?php
$file = fopen("demo.txt", "r");
?>
Biến $file không chứa nội dung tập tin mà chỉ lưu tham chiếu đến tài nguyên vừa được mở.
Sau khi sử dụng xong nên giải phóng tài nguyên.
<?php
fclose($file);
?>
Việc đóng tài nguyên giúp tiết kiệm bộ nhớ và hạn chế rò rỉ tài nguyên khi ứng dụng hoạt động lâu dài.
PHP tự động chuyển đổi kiểu dữ liệu như thế nào?
Một ưu điểm lớn của PHP là có thể tự động chuyển đổi kiểu dữ liệu khi cần thiết. Điều này giúp lập trình nhanh hơn nhưng cũng có thể tạo ra những lỗi khó phát hiện nếu không hiểu cơ chế hoạt động.
Ví dụ cộng chuỗi với số
<?php
$a = "100";
$b = 50;
echo $a + $b;
?>
PHP sẽ tự chuyển chuỗi "100" thành số nguyên trước khi thực hiện phép cộng.
Ví dụ Boolean
<?php
$value = 1;
if ($value) {
echo "True";
}
?>
Giá trị 1 sẽ được PHP chuyển thành true.
Một số giá trị được xem là false
- false
- 0
- 0.0
- ""
- "0"
- null
- Mảng rỗng.
Tất cả các giá trị còn lại thông thường sẽ được xem là true.
Ép kiểu dữ liệu trong PHP
Ngoài cơ chế tự chuyển đổi, PHP còn cho phép lập trình viên chủ động ép kiểu để dữ liệu đúng với mong muốn.
Ép sang Integer
<?php
$number = (int)"250";
?>
Ép sang Float
<?php
$price = (float)"199.5";
?>
Ép sang String
<?php
$value = (string)100;
?>
Ép sang Boolean
<?php
$status = (bool)1;
?>
Ép kiểu giúp chương trình hoạt động ổn định hơn khi dữ liệu được lấy từ biểu mẫu, API hoặc cơ sở dữ liệu.
Cách kiểm tra kiểu dữ liệu của biến trong PHP
Trong quá trình phát triển ứng dụng, sẽ có nhiều trường hợp bạn không chắc một biến đang lưu kiểu dữ liệu nào, đặc biệt khi dữ liệu được nhận từ biểu mẫu, API hoặc cơ sở dữ liệu. PHP cung cấp nhiều hàm hỗ trợ kiểm tra kiểu dữ liệu một cách nhanh chóng.
Sử dụng hàm gettype()
Hàm gettype() trả về tên kiểu dữ liệu của biến dưới dạng chuỗi.
<?php
$value = 100;
echo gettype($value);
?>
Kết quả:
- integer
Ví dụ với chuỗi:
<?php
$text = "PHP";
echo gettype($text);
?>
Kết quả sẽ là:
- string
Kiểm tra bằng các hàm is_*
PHP còn cung cấp nhiều hàm chuyên biệt để kiểm tra từng kiểu dữ liệu. Đây là cách được sử dụng phổ biến vì kết quả trả về chỉ gồm true hoặc false, rất thuận tiện khi kết hợp với câu lệnh điều kiện.
| Hàm | Chức năng |
|---|---|
| is_string() | Kiểm tra chuỗi. |
| is_int() | Kiểm tra số nguyên. |
| is_float() | Kiểm tra số thực. |
| is_bool() | Kiểm tra Boolean. |
| is_array() | Kiểm tra mảng. |
| is_object() | Kiểm tra Object. |
| is_null() | Kiểm tra NULL. |
| is_resource() | Kiểm tra Resource. |
Ví dụ sử dụng is_string()
<?php
$name = "Web Mới";
if (is_string($name)) {
echo "Đây là chuỗi";
}
?>
Việc sử dụng các hàm kiểm tra kiểu dữ liệu giúp hạn chế lỗi khi xử lý dữ liệu đầu vào và tăng độ ổn định cho ứng dụng.
So sánh các kiểu dữ liệu trong PHP
| Kiểu dữ liệu | Lưu trữ | Ví dụ | Ứng dụng |
|---|---|---|---|
| String | Chuỗi ký tự | "PHP" | Tiêu đề, tên, mô tả. |
| Integer | Số nguyên | 2026 | ID, tuổi, số lượng. |
| Float | Số thực | 19.95 | Giá tiền, tỷ lệ. |
| Boolean | Đúng hoặc Sai | true | Điều kiện. |
| Array | Tập hợp dữ liệu | ["A","B"] | Danh sách. |
| Object | Đối tượng | new User() | Lập trình hướng đối tượng. |
| NULL | Không có giá trị | null | Dữ liệu chưa tồn tại. |
| Resource | Tham chiếu tài nguyên | fopen() | Tập tin, kết nối. |
Những lỗi thường gặp khi làm việc với kiểu dữ liệu
So sánh bằng toán tử == thay vì ===
Đây là lỗi rất phổ biến đối với người mới học PHP.
Toán tử == chỉ so sánh giá trị sau khi PHP tự chuyển đổi kiểu dữ liệu, còn === sẽ so sánh cả giá trị lẫn kiểu dữ liệu.
<?php
$a = 100;
$b = "100";
var_dump($a == $b);
var_dump($a === $b);
?>
Trong ví dụ trên:
- == trả về true.
- === trả về false vì một bên là số nguyên, một bên là chuỗi.
Đối với các dự án thực tế, nên ưu tiên sử dụng === để tránh lỗi ngoài ý muốn.
Phụ thuộc quá nhiều vào ép kiểu tự động
PHP hỗ trợ chuyển đổi kiểu rất linh hoạt, tuy nhiên điều này cũng có thể khiến kết quả xử lý không đúng như mong đợi nếu dữ liệu đầu vào không được kiểm soát.
Thay vì để PHP tự suy luận, hãy chủ động kiểm tra và ép kiểu khi cần thiết.
Không kiểm tra dữ liệu đầu vào
Dữ liệu lấy từ người dùng luôn có thể sai định dạng hoặc không đúng kiểu. Nếu xử lý trực tiếp mà không kiểm tra sẽ dễ phát sinh lỗi hoặc tạo ra lỗ hổng bảo mật.
Nên kết hợp:
- is_string()
- is_numeric()
- is_array()
- empty()
- isset()
để xác thực dữ liệu trước khi xử lý.
Kinh nghiệm lựa chọn kiểu dữ liệu phù hợp
Việc chọn đúng kiểu dữ liệu không chỉ giúp chương trình dễ hiểu mà còn ảnh hưởng đến hiệu năng và khả năng mở rộng của dự án.
- Sử dụng String cho mọi dữ liệu dạng văn bản.
- Dùng Integer khi giá trị luôn là số nguyên.
- Chỉ dùng Float khi thật sự cần phần thập phân.
- Dùng Boolean cho các trạng thái bật, tắt hoặc đúng, sai.
- Sử dụng Array khi cần quản lý danh sách dữ liệu.
- Áp dụng Object khi phát triển ứng dụng theo hướng OOP.
- Dùng NULL để biểu thị dữ liệu chưa được gán.
- Giải phóng Resource ngay sau khi sử dụng để tiết kiệm tài nguyên.
Câu hỏi thường gặp
PHP có bao nhiêu kiểu dữ liệu cơ bản?
PHP có tám kiểu dữ liệu chính gồm String, Integer, Float, Boolean, Array, Object, NULL và Resource. Ngoài ra, ở các phiên bản PHP hiện đại còn có thêm các khái niệm như Iterable, Callable, Mixed hoặc Union Type phục vụ khai báo kiểu trong hàm và lớp.
PHP có bắt buộc khai báo kiểu dữ liệu khi tạo biến không?
Không. PHP là ngôn ngữ có kiểu dữ liệu động nên kiểu của biến được xác định dựa trên giá trị được gán. Tuy nhiên, từ PHP 7 trở đi bạn có thể khai báo kiểu cho tham số và giá trị trả về của hàm nhằm tăng tính an toàn cho mã nguồn.
Khi nào nên sử dụng Array thay vì Object?
Nếu chỉ cần lưu trữ hoặc truyền dữ liệu, Array là lựa chọn đơn giản và linh hoạt. Khi cần mô hình hóa đối tượng có thuộc tính, phương thức và hành vi riêng, Object sẽ phù hợp hơn.
Làm sao biết một biến đang có kiểu dữ liệu gì?
Bạn có thể sử dụng hàm gettype() để lấy tên kiểu dữ liệu hoặc các hàm như is_string(), is_int(), is_array() hay is_object() để kiểm tra trực tiếp từng kiểu.
Kết luận
Hiểu rõ các kiểu dữ liệu trong PHP là bước quan trọng để xây dựng những ứng dụng ổn định, dễ bảo trì và có hiệu năng tốt. Mỗi kiểu dữ liệu đều được thiết kế nhằm phục vụ một mục đích riêng, từ lưu trữ văn bản, xử lý số liệu đến quản lý danh sách hoặc xây dựng các mô hình hướng đối tượng.
Thay vì chỉ ghi nhớ tên các kiểu dữ liệu, bạn nên luyện tập thông qua các ví dụ thực tế, kết hợp với việc kiểm tra kiểu dữ liệu, ép kiểu đúng lúc và sử dụng toán tử so sánh phù hợp. Khi nắm vững những kiến thức này, việc phát triển website hoặc ứng dụng bằng PHP sẽ trở nên thuận lợi, hạn chế lỗi và giúp mã nguồn chuyên nghiệp hơn.
- 0 Bình luận
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 *