Tải bản đầy đủ (.docx) (13 trang)

Các kiểu dữ liệu trong php

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (236.52 KB, 13 trang )

Các ki ểu d ữli ệu trong php
Trong php có t ổng c ộng 7 ki ểu d ữli ệu:


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 ượ
n g (object)


N ội dung chính


1. Ki ểu d ữli ệu INT
o

Khai báo biến kiểu INT

o

Ép dữ liệu sang kiểu INT

o

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


2. Kiểu dữ liệu boolean

o

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

o

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


3. Kiểu số thực


o

Ép dữ liệu sang kiểu số thức.

o

Kiểm tra một biến kiểu số thực.


o

4. Kiểu chuỗi
Kiểm tra một biến kiểu string




5. Kiểu mảng (array)

o

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

o

Mảng có chỉ mục

o

Mảng kết hợp


o

Mảng một chiều

o

Mảng nhiều chiều

o

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


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

o


7. Kiểu Object (đối tượng)



8. Kết thúc bài học

1. Ki ểu d ữ li ệu INT
Ch ữ INT là viết tắt c ủa ch ữ INTEGER, là m ột ki ểu d ữ li ệu d ạng s ố và có th ể ở vi ết ở nhi ều c ơ s ố
khác nhau.
Ví dụ 1:


1


2

$thap_phan = 123; // Số thập phân

3

$so_am = -123; // Số âm

4

$bat_phan = 0123; // số bát phân

5

$thap_luc_phan = 0x1A; // và số thập lục phân

6

?>

Kiểu số INT Chúng ta không dùng dấu nháy để bao quanh nó và kích th ước c ủa ki ểu INT là 32bit.
Trong PHP không h ỗ tr ợ nhi ều ki ểu Unsigned Integer (S ố nguyên d ương) nên n ếu b ạn s ử d ụng
vượt quá giới hạn của nó thì mặc nhiên trình biên dịch sẽ hiểu đây là ki ểu Float (s ố th ực), tuy nhiên
không phải lúc nào điều này cũng đúng cho trường hợp số dương.



Khai báo bi ến ki ểu INT
Để khai báo một biến kiểu INT bạn sẽ gán giá trị cho nó là số nguyên (kể cả số âm).
Ví dụ 2:

1


2

$tuoi = 12; // biến $tuoi là kiểu INT có giá trị = 12

3

?>

Ép d ữ li ệu sang ki ểu INT
Cú Pháp: (int)$ten_bien;
Ví dụ 3:

1


2

$tuoi = '98'; // biến tuổi là một chuỗi có giá trị bằng '98'

3


$tuoi = (int)$tuoi; // lúc này biến $tuoi là một kiểu int có giá trị 98

4

?>

Việc chuyển đổi này trong PHP đôi khi lại không cần thi ết vì các kiểu dữ li ệu trong php t ự động
chuyển các biến sang các kiểu thích hợp để thực hiện phép tính, tuy nhiên sau khi th ực hi ện tính
toán thì biến đó sẽ tự chuyển lại kiểu dữ liệu ban đầu.
Ví dụ 4:

1


2

$a = '123';

3

$b = 123; // Biến $b là kiểu INT có giá trị bằng 123

4

// Biến $a là kiểu chuỗi có giá trị bằng '123'

$c = $a + $b; // Biến C là kết quả của phép toán $a + $b và sẽ có giá trị là 246 nên nó


5

var_dump(is_int($c)); // hàm is_int($tenbien) dùng để kiểm tra một biến có phải là kiể
không

6

var_dump(is_int($a)); // kết quả là false vì biến $a là kiểu string

7

?>

Trong ví dụ này các bạn thấy biến $a là chuỗi còn biến $b là số, khi ta cộng 2 biến lại thì các biến sẽ
tự động chuyển sang kiểu số INT thích hợp để cộng, và kết quả là kiểu INT gán vào biến $c. Để
kiểm tra bạn dùng dòng lệnh var_dump(is_int($c));để xuất ra màn hình kết quả kiểm tra.


Ví dụ 5:

1


2

$a = 'a123'; // biến $a có giá trị là chuỗi 'a123'

3


$a = (int)$a; // chuyển $a sang kiểu INT

4

echo $a; // kết quả xuất ra màn hình là số 0

5

?>

Chạy đoạn lệnh này các bạn sẽ thấy kết quả ra số 0. Tại sao? vì bạn thấy biến $a có ký tự đầu tiên
không phải ở dạng số nên nó sẽ tự động cắt bỏ tất cả những ký tự đằng sau ký tự a nên chuỗi này
rỗng, mà giá trị rỗng chuyển sang kiểu INT có giá trị bằng không.
Ví dụ 6:

1


2

$a = '123a'; // biến $a có giá trị là chuỗi '123a'

3

$a = (int)$a; // chuyển $a sang kiểu INT

4

echo $a; // kết quả xuất ra màn hình là số 123


5

?>

Chạy đoạn code này kết quả xuất ra màn hình là 123, cũng như giải thích ở trên nó s ẽ xóa các ký t ự
bắt đầu t ừ ký t ự a nên chu ỗi s ẽ còn ’123′, chuy ển sang ki ểu INT thành 123.

Ki ểm tra d ữ li ệu có ph ải ki ểu INT.
Để kiểm tra một biến nào đó có phải kiểu INT không 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:

1



2

$is_admin = false; // biến $admin là kiểu boolean có gái trị là false

3


?>

É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:

1


2

$bool = 1; // biến $bool là kiểu int

3

$bool = (bool)$bool; // lúc này biến $bool sẽ có kiểu boolean

4

// Hoặc

5

$bool = (boolean)$bool; // lúc này biến $bool sẽ có kiểu boolean

6


?>

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:

1


2

$a = 123; // TRUE

3

$b = 0; // FALSE

4

$c = '0'; // FALSE

5

$d = 'a123b' // TRUE

6

$e = null; // FALSE


7

$f = ''; // FALSE

8

?>

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:

1


2

$a = 1.234; // Kiểu số thực

3


?>

É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:

1


2

$a = 123; // biến $a kiểu int

3

$a = (float)$a; // Biến $a lúc này kiểu số thực (float)

4

$a = (double)$a; // Biến $a lúc này kiểu ố thực (double)

5

?>

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:

1



2

$a = 123; // khai báo biến $a kiểu int có giá trị 123

3

$a = (string)$a; //Chuyển biến $a thành kiểu chuỗi và có giá trị là '123'

4

?>

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.
Nếu bạn muốn tìm hiểu thêm về chuỗi thì có thể xem bài các hàm xử lý chuỗi trong php.


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:

1


2

$ten_mang = array(); // khởi tạo một mảng gán vào biến $ten_mang

3

?>

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:

1



2

$sinhvien = array('Nguyễn Văn A', 'Nguyễn Văn B');

3

print_r($sinhvien);

4

?>

Cách 2:


1


2

$sinhvien = array(

3

0 => 'Nguyễn Văn A',

4


1 => 'Nguyễn Văn B'

5

);

6

print_r($sinhvien);

7

?>

Cách 3:

1


2

$sinhvien = array();

3

$sinhvien[0] = 'Nguyễn Văn A';

4


$sinhvien[1] = 'Nguyễn Văn B';

5

print_r($sinhvien);

6

?>

Cách 4:

1


2

$sinhvien = array();

3

$sinhvien[] = 'Nguyễn văn A';

4

$sinhvien[] = 'Nguyễn Văn B';

5


print_r($sinhvien);

6

?>

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:

1



2

$sinhvien = array(

3

0 => 'Nguyễn Văn A',

4

1 => 'Nguyễn Văn B'

5

);

6

echo $sinhvien[0]; // Xuất ra màn hình phần tử 0 => Nguyễn Văn A

7

echo $sinhvien[1]; // Xuất ra màn hình phần tử 1 => Nguyễn Văn B

8

?>


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:

1


2

$sinhvien = array(

3

'sinhvien_a' => 'Nguyễn Văn A',

4

'sinhvien_b' => 'Nguyễn Văn B'
);


5
6

print_r($sinhvien);
?>


7
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.

1


2

$sinhvien = array();

3

$sinhvien['sinhvien_a'] = 'Nguyễn Văn A';

4

$sinhvien['sinhvien_b'] = 'Nguyễn Văn B';

5

print_r($sinhvien);

6

?>

Xét ví dụ sau:

1



2

$sinhvien = array();

3

$sinhvien['sinhvien_a'] = 'Nguyễn Văn A';

4

$sinhvien['sinhvien_b'] = 'Nguyễn Văn B';

5

print_r($sinhvien);

6

?>

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:

1


2

$sinhvien = array();
$sinhvien['sinhvien_a'] = 'Nguyễn Văn A';


3
4
5
6

$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
?>

7

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 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.

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

1


2

$a = array();
$a[0][1] = 123;


3
4

$a[0][2] = 321;
?>

5
Ví dụ 18: truy xuất phần tử trong mảng 2 chiều:

1



2

$a = array();

3

$a[0][1] = 123;

4

$a[0][2] = 321;

5

echo $a[0][1]; // in ra giá trị 123

6

echo $a[0][2]; // in ra giá trị 321

7

?>

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.
Nêu bạn muốn tham khảo thêm về mảng thì có thể đọc bài các hàm xử lý mảng trong php.


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:

1


2

$a = null; // Khởi tạo biến $a và gán giá trị null

3

$b = (int)$a; // Biến $b có giá trị là ( 0 )

4
5

$c = (string)$a; // Biến $c có giá trị rỗng ( '' )
$d = (bool)$a; // Biến $d có giá trị FALSE
?>


6


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.

7. Ki ểu Object ( đối t ượng)
Riêng kiểu đối tượng (Object) thì nó liên quan đến kiến thức lập trình nâng cao nên tạm th ời các
bạn bỏ qua kiểu này nhé. Nếu bạn nào quan tâm thì có thể xem tại series php nâng cao.

8. K ết thúc bài h ọc



×