Kiểu dữ liệu - PHP Căn Bản

ChenJi

Ban Quản Trị
Tham gia
2/12/16
Bài viết
1,298
Xếp hạng
113
#1
Sau bài học đâu tiên về Biến và Hằng, chúng ta sẽ đến với những Kiểu dữ liệu trong PHP. Trong bài này, sẽ giới thiệu tất cả các kiểu dữ liệu cơ bản. Nào hay cùng tìm hiểu nào.



Trong PHP tổng cộng có 7 kiểu dữ liệu cơ bản như sau:


  • Kiểu INT
  • Kiểu Boolean
  • Kiểu Số Thực (float, double)
  • Kiểu Chuỗi
  • Kiểu Mảng (array)
  • Kiểu NULL
  • Kiểu Đối Tượng (object)

1. Kiểu dữ liệu INT


Theo chúng ta hiểu, INT là từ viết tắt của từ INTEGER - là một kiểu dữ liệu ở dạng số và có thể viết được nhiều kiểu cơ số khác nhau.

Ví dụ 1:

PHP:
<?php
$so_thap_phan = 123; // Số thập phân
$so_am = -123; // Số âm
$so_bat_phan = 0123; // số bát phân
$so_thap_luc_phan = 0x1A; // và số thập lục phân
?>
Đối với kiểu INT thì chúng ta không được dùng dấu nháy. và kích thước của nó là 32bit.

Cách khai báo kiểu INT


Để khai báo được kiểu INT, bạn phải gán giá trị của nó vào biến là một số nguyên (âm hoặc dương).

Ví dụ 2:

PHP:
<?php
$a= 12; // biến $a là kiểu INT vì giá trị = 12
$b= -12; // biến $b kiểu INT vì giá trị = -12
?>

Kiểm tra dữ liệu có phải kiểu INT.



Nếu bạn muốn kiểm tra một biến nào đó có phải kiểu INT không thì bạn dùng 2 hàm is_int($bien) hoặc is_integer($bien). kết quả trả về giá trị True nếu là kiểu INT và False nếu không phải kiểu INT.


2. Kiểu dữ liệu boolean



Đây là một kiểu dữ liệu đơn giản nhất trong các kiểu dữ liệu trong PHP, nó chỉ chứa 2 giá trị là đúng hoặc sai (TRUE hoặc FALSE). Để tạo biến kiểu boolean thì bạn gán giá trị cho nó là TRUE hoặc FALSE. Lưu ý TRUE, FALSE không phân biệt hoa thường, nghĩa là bạn gõ thế nào cũng được miễn là đúng.

Ví dụ 7:

PHP:
<?php
$is_admin = false; // biến $admin là kiểu boolean có gái trị là false
?>

Ép dữ liệu sang kiểu boolean.



Tương tự như kiểu INT bạn sử dụng (bool) hoặc (boolean) để ép kiểu sang kiểu bool. Như vậy trong PHP thì bool và boolean là 2 từ khóa có cùng một ý nghĩa.

Ví dụ 8:

PHP:
<?php
$bool = 1; // biến $bool là kiểu int
$bool = (bool)$bool; // lúc này biến $bool sẽ có kiểu boolean
// Hoặc
$bool = (boolean)$bool; // lúc này biến $bool sẽ có kiểu boolean
?>
Các ký tự 0, ký tự trống và null đều được quy về giá trị FALSE, các ký tự còn lại quy về TRUE. Việc chuyển đổi này đôi khi cũng không cần thiết vì php tự xem xét giá trị và quy về TRUE hay FALSE.

Ví dụ 9:

PHP:
<?php
$a = 123; // TRUE
$b = 0; // FALSE
$c = '0'; // FALSE
$d = 'a123b' // TRUE
$e = null; // FALSE
$f = ''; // FALSE
?>

Kiểm tra một biến kiểu boolean


Để kiểm tra một biến có phải kiểu boolean bạn dùng hàm is_bool($bien); để kiểm tra, kết quả của hàm này trả về TRUE nếu là kiểu bool, ngược lại là false nếu không phải kiểu bool.

3. Kiểu số thực



Hiểu một cách nôm na kiểu số thực là những số có phần dư, còn kiểu INT là những số không dư phần nào, như số 1.234 là kiểu số thực, 1234 là kiểu số nguyên (INT). Kích cỡ của nó phụ thuộc xác định phụ thuộc vào từng platform nhưng giá trị lớn nhất xấp xỉ 1.8e308, các kiểu dữ liệu trong php của kiểu số thực gồm có kiểu float, double.

Ví dụ 10:

PHP:
<?php
$a = 1.234; // Kiểu số thực
?>
Ép dữ liệu sang kiểu số thức.

Bạn dùng (float), (double) để chuyển kiểu dữ liệu sang số thực cho một biến

Ví dụ 11:

PHP:
<?php
$a = 123; // biến $a kiểu int
$a = (float)$a; // Biến $a lúc này kiểu số thực (float)
$a = (double)$a; // Biến $a lúc này kiểu ố thực (double)
?>
Kiểm tra một biến kiểu số thực.


Để kiểm tra một biến phải kiểu số thực không bạn dùng hàm is_float($bien); để kiểm tra cho kiểu float, is_double($bien) để kiểm tra cho kiểu double. Kết quả 2 hàm này trả về TRUE nếu đúng, FALSE nếu sai.

4. Kiểu chuỗi



Các kiểu dữ liệu trong php thì kiểu chuỗi mình gồm kiểu string (chuỗi) và char (ký tự), mỗi ký tự là 1 byte và là một trong 256 ký tự khác nhau, để khai báo báo các bạn chỉ việc khai báo một biến và gán giá trị chuỗi cho nó, chuỗi phải được bao quanh bằng dấu nháy đơn ‘ hoặc dấu nháy kép “. Ép kiểu cũng như trên ta dùng (string) để chuyển sang kiểu chuỗi.

Ví dụ 12:

PHP:
<?php
$a = 123; // khai báo biến $a kiểu int có giá trị 123
$a = (string)$a; //Chuyển biến $a thành kiểu chuỗi và có giá trị là '123'
?>

Kiểm tra một biến kiểu string



Để kiểm tra một biến kiểu chuỗi (string) ta dùng hàm is_string($bien); kết quả hàm này trả về TRUE nếu đúng và FALSE nếu không đúng.

5. Kiểu mảng (array)



Mảng là danh sách các phần tử có cùng kiểu dữ liệu và nó là một trong các kiểu dữ liệu trong php có độ phức tạp tính toán cao. Có 2 loại mảng là mảng một chiều hoặc mảng nhiều chiều. Riêng với PHP thì các phần tử của mảng có thể không cùng kiểu dữ liệu, và các phần tử của mảng được truy xuất thông qua các chỉ mục(vị trí) của nó nằm trong mảng.

Khởi tạo và truy xuất các hần tử trong mảng

Để khai báo mảng ta dùng cú pháp sau:
PHP:
<?php
$ten_mang = array(); // khởi tạo một mảng gán vào biến $ten_mang
?>
Giả sử tôi có 2 sinh viên là Nguyễn Văn A và Nguyễn Văn B, giờ tôi sẽ khởi tạo một mảng $sinhvien để lưu 2 sinh viên này lại.

NOTE: Các bạn dùng hàm var_dump($mang); để in ra các phần tử của mạng để test trong quá trình học nhé. Hàm này có thể sử dụng được tất cả các kiểu dữ liệu trong php.

Cách 1:
PHP:
<?php
$sinhvien = array('Nguyễn Văn A', 'Nguyễn Văn B');
print_r($sinhvien);
?>
Cách 2:
PHP:
<?php
$sinhvien = array(
0 => 'Nguyễn Văn A',
1 => 'Nguyễn Văn B'
);
print_r($sinhvien);
?>
Cách 3:
PHP:
<?php
$sinhvien = array();
$sinhvien[0] = 'Nguyễn Văn A';
$sinhvien[1] = 'Nguyễn Văn B';
print_r($sinhvien);
?>
Cách 4:
PHP:
<?php
$sinhvien = array();
$sinhvien[] = 'Nguyễn văn A';
$sinhvien[] = 'Nguyễn Văn B';
print_r($sinhvien);
?>
Cả 4 cách đều có kết quả giống nhau nhưng cú pháp lại khác nhau.

Mảng có chỉ mục



Là mảng có các phần tử được định danh một chỉ mục (kiểu số) và bắt đầu bằng số 0 và phần tử cuối cùng có chỉ mục là (n-1), trong đó n là tổng số phần tử của mảng. Điều này có nghĩa nếu mảng của bạn có 10 phần từ thì lần lượt các vị trí phần tử trong mảng là: [0] – [1] – [2] – [3] – [4] – [5] – [6] – [7] – [8] – [9]

Quay lại 4 cách giải của ví dụ trên:


  • Với cách 1: Bạn khởi tạo một mảng và gán trực tiếp 2 phần từ vào, vì mảng bắt đầu từ 0 nên nó tự hiểu phần tử đầu tiên có chỉ mục =0, và phần tử thứ 2 = 1.
  • Với cách 2: Bạn khởi taọ một mảng và gán trực tiếp 2 phần tử vào, nhưng lúc gán bạn có ghi rõ các chỉ mục cho từng phần tử.
  • Với cách 3: Ban khởi tạo một mảng rỗng. sau đó bạn dùng 2 lệnh để gán 2 phần tử vào, mỗi lệnh gán bạn có chỉ rõ chỉ mục.
  • Với cách 4: Bạn khởi tạo một mảng rỗng, sau đó bạn dùng 2 lệnh gán 2 phần tử vào nhưng bạn lại không chỉ rõ chỉ mục, lúc này PHP sẽ kiểm tra thấy mảng đang rỗng nên phần tử đầu tiên nó sẽ mặc định gán chỉ mục = 0, và phần tử tiếp theo sẽ bằng phần tử trước nó + 1 tức là sẽ = 1.


Để truy xuất các phần tử của mảng chỉ mục ta dùng cú pháp sau: $tenmang[$index]; trong đó $index là chỉ mục bạn muốn lấy.

Ví dụ 14:

PHP:
<?php
$sinhvien = array(
0 => 'Nguyễn Văn A',
1 => 'Nguyễn Văn B'
);
echo $sinhvien[0]; // Xuất ra màn hình phần tử 0 => Nguyễn Văn A
echo $sinhvien[1]; // Xuất ra màn hình phần tử 1 => Nguyễn Văn B
?>

Mảng kết hợp



Là Mảng có các phần tử được định danh bằng một cái tên và đương nhiên vị trí các phần tử sẽ không có thứ tự.

Ví dụ 15:

PHP:
<?php
$sinhvien = array(
'sinhvien_a' => 'Nguyễn Văn A',
'sinhvien_b' => 'Nguyễn Văn B'
);
print_r($sinhvien);
?>
Tương tự như những ví dụ ở phần mảng có chỉ mục, mình có thêm cách khai báo.
PHP:
<?php
$sinhvien = array();
$sinhvien['sinhvien_a'] = 'Nguyễn Văn A';
$sinhvien['sinhvien_b'] = 'Nguyễn Văn B';
print_r($sinhvien);
?>
Xét ví dụ sau:

PHP:
<?php
$sinhvien = array();
$sinhvien['sinhvien_a'] = 'Nguyễn Văn A';
$sinhvien['sinhvien_b'] = 'Nguyễn Văn B';
print_r($sinhvien);
?>
Trong ví dụ này điều đặc biệt là lúc gán sinh viên Nguyễn Văn B ta không truyền tên cho nó mà chỉ dùng dấu [] để thêm vào. Điều gì sẽ xảy ra? Câu trả lời như sau: Trình biên dịch sẽ chạy dòng thứ 1 khởi tạo một mảng rỗng, dòng thứ 2 thêm một phần tử cho mảng với tên sinhvien_a, dòng thứ 3 nó sẽ thấy ko có truyền chỉ mục nên nó sẽ lưu giá trị Nguyễn Văn B dưới dạng chỉ mục. Nó xét thấy trong mảng này chưa có chỉ mục nào (vì dòng 2 truyền dạng kết hợp), nên sinh viên Nguyễn Văn B sẽ được lấy chỉ mục = 0.

Việc truy xuất các phần tử trong mảng kết hợp cũng tương tự như mảng chỉ mục ta dùng cú pháp sau: $tenmang[$name], trong đó $name là tên của phần tử bạn muốn lấy ra.

Ví dụ 16:

PHP:
<?php
$sinhvien = array();
$sinhvien['sinhvien_a'] = 'Nguyễn Văn A';
$sinhvien['sinhvien_b'] = 'Nguyễn Văn B';
echo $sinhvien['sinhvien_a']; // xuất ra màn hình sinh viên Nguyễn Văn A
echo $sinhvien['sinhvien_b']; // xuất ra màn hình sinh viên Nguyễn Văn B
?>

Mảng một chiều


Tất cả những ví dụ ở trên gọi là mảng 1 chiều (gồm mảng 1 chiều chi mục, mảng một chiều kết hợp)

Mảng một chiều



Mảng nhiều chiều



Là mảng có nhiều chỉ mục cho từng phần tử, ví dụ mảng 2 chiều thì mỗi phần tử có 2 chỉ muc, 3 chiều thì mỗi phần tử có 3 chỉ mục, …
Mảng nhiều chiều thực chất cũng chỉ là mảng 1 chiều nhưng được thể hiện dưới dạng nhiều chiều.

Xem hình minh họa mảng 2 chiều sau được biểu hiện bằng số dòng và số cột (nghĩa là 2 chiều giống trong hình học không gian 2 chiều), mỗi phần tử sẽ được định vị trí ở điểm giao nhau của chỉ số cột và dòng hiện tại.

Mảng nhiều chiều



Ví dụ 17: thêm phần tử trong mảng 2 chiều:

PHP:
<?php
$a = array();
$a[0][1] = 123;
$a[0][2] = 321;
?>
Ví dụ 18: truy xuất phần tử trong mảng 2 chiều:

PHP:
<?php
$a = array();
$a[0][1] = 123;
$a[0][2] = 321;
echo $a[0][1]; // in ra giá trị 123
echo $a[0][2]; // in ra giá trị 321
?>

Kiểm tra một biến kiểu mảng



Để kiểm tra một biến có phải kiểu mảng (array) không ta dùng hàm is_array($bien), hàm này trả về TRUE nếu đúng và FALSE nếu không đúng.

6. Kiểu giá trị Null



Đây là kiểu đặc biệt trong PHP và cũng như các ngôn ngữ lập trình khác, nó mang giá trị rỗng.

Lúc bạn khởi tạo một biến và bạn gán = NULL thì sẽ hệ thông sẽ không tốn bộ nhớ để lưu trữ, nên việc sử dụng nó rất có lợi.

Kiểu NULL khi ép kiểu sang kiểu INT thì bằng 0, khi ép kiểu sang kiểu chuỗi thì = rỗng, và khi ép sang kiểu boolean thì mang giá trị FALSE.

Ví dụ 19:

PHP:
<?php 
$a = null; // Khởi tạo biến $a và gán giá trị null
$b = (int)$a; // Biến $b có giá trị là ( 0 )
$c = (string)$a; // Biến $c có giá trị rỗng ( '' )
$d = (bool)$a; // Biến $d có giá trị FALSE
?>

Kiểm tra một biến có giá trị null


Để kiểm tra một biến có giá trị null hay không ta dùng hàm is_null($bien). Biến này trả về TRUE nếu đúng và FALSE nếu không đúng.

Các bạn thấy các kiểu dữ liệu trong PHP rất là nhiều và cách sử dụng nó thật sự đơn giản hơn các kiểu dữ liệu trong ngôn ngữ lập trình khác. Hy vọng bài này sẽ là tiền đề để các bạn đam mê ngành lập trình web php
 
Sửa lần cuối bởi điều hành viên:

Thành viên trực tuyến

Không có thành viên trực tuyến.

Group TechViews

Thống kê diễn đàn

Chủ đề
1,407
Bài viết
2,939
Thành viên
6,532
Thành viên mới nhất
maygiatlg
Top Bottom