Chào mừng các bạn đã trở lại với Series Học PHP và MySQL từ cơ bản đến nâng cao. Bài học hôm nay chúng ta sẽ cùng tìm hiểu về kiểu dữ liệu trong PHP?

Tương tự như các ngôn ngữ lập trình khác PHP cũng có những kiểu dữ liệu 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).
  • Kiểu

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

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

Cú Pháp:

(int)$ten_bien;

Ví dụ:

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

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.

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.

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.

Chú ý: Để kiểm tra biến nào đó có phải là INT hay không ta sử dụng 2 hàm is_int($ten_bien) hoặc is_interger($ten_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.

KIỂ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ụ:

$a = TRUE;

$b = FALSE;
//phép toán == kiểm tra xem 2 biểu thức có giá trị bằng nhau hay không

$c = (1==2); //vì 1 khác 2 nên $c mang giá trị FALSE

$d = ("abc" == "def"); //$d mang giá trị TRUE

“Ép” kiểu sang boolean: một số giá trị được chuyển đổi thành FALSE trong các biểu thức boolean nếu như giá trị đó là:

  • Số nguyên 0
  • Số thực 0.0
  • Chuỗi rỗng “”, hoặc chuỗi “0”.
  • Mảng rỗng (không chứa phần tử nào) Array().
  • Đối tượng không chứa phần tử nào (chỉ đúng với PHP4).
  • Giá trị NULL.

Các giá trị còn lại sẽ được chuyển đổi thành TRUE.

KIỂU SỐ THỰC (FLOAT, DOUBLE)

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.

Ép kiểu dữ liệu sang 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ụ:

<?php
$a = 1.234;
$b = 1.2e3; //= 1.2*10^3 = 1200
$c = 7E-10; //= 7*(10^-10) = 0.0000000007
$d = -1.23;
?>

KIỂU CHUỖI (STRING)

Các kiểu dữ liệu trong php thì kiểu chuỗi gồm  kiểu string (chuỗi)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ụ 1:

Ví dụ 2:

<?php

$a = 'Đây là 1 chuỗi được đặt giữa dấu nháy đơn';

$b = "Đây là 1 chuỗi được đặt giữa dấu nháy kép";

$c = 'Đây là 1 chuỗi được đặt giữa dấu nháy đơn với "vài dấu nháy kép ở giữa"';

$d = "Đây là 1 chuỗi được đặt giữa dấu nháy kép với 'vài dấu nháy đơn ở giữa'";

?>

Nếu bạn muốn sử dụng dấu nháy đơn ở trong 1 chuỗi được bọc bởi dấu nháy đơn, hoặc sử dụng dấu nháy kép đặt giữa chuỗi được bọc bởi dấu nháy kép thì bạn để thêm ký tự \ (gọi là ký tự escape) ở phía trước.

Ví dụ 3:

<?php

$a = 'Dấu \'nháy đơn\' ở giữa chuỗi';

//$a mang giá trị: Dấu 'nháy đơn' ở giữa chuỗi

$b = "Dấu \"nháy kép\" ở giữa chuỗi";

//$b mang giá trị: Dấu "nháy kép" ở giữa chuỗi

$c = "Dùng ký tự \\ ở giữa câu \\ thì sao?";

//$c mang giá trị: Dùng ký tự

?>

Khi sử dụng dấu nháy đôi để bọc chuỗi, ngoài [ \’, \” và \\ ]PHP có thể nhận dạng thêm một số chuỗi ký tự escape đặct biệc nữa:

\n: ký tự xuống hàng LF (ký tự có mã 10 trong bảng mã ASCII).

\r: ký tự về đầu dòng CR (ký tự có mã 13 trong bảng mã ASCII).

\t: ký tự tab (ký tự có mã 9 trong bảng mã ASCII).

\$: ký tự $.

\ooo: (với o là 1 chữ số từ 0 đến 7) biểu thị 1 ký tự có mã ASCII ooo trong hệ cơ số 8.

Ví dụ 4:

\101 sẽ là ký tự ‘A’ (101 trong hệ cơ số 8 tương đương 65 trong hệ cơ số 10, ký tự ASCII có mã 65 chính là ký tự ‘A’).

\xhh: (với h là 1 chữ số từ 0 đến 9 hoặc 1 chữ cái từ A tời F) biểu thị 1 ký tự có mã ASCII hh trong hệ cơ số 16.

Ví dụ 5:

\0x41 sẽ là ký tự ‘A’ (41 trong hệ cơ số 16 chính là 65 trong hệ cơ số 10).

Ngoài ra, nếu bạn để 1 biến vào giữa 1 chuỗi được bọc với dấu nháy kép, giá trị của biến sẽ được thay thế vào trong chuỗi.

Ví dụ 6:

<?php

$a = 1;

$b = 2;

$c = 3;

$d = "$a $b $c"; //$d sẽ mang giá trị là chuỗi "1 2 3"

?>

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.

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 phần tử trong mảng

Để khai báo mảng ta dùng cú pháp sau:

Giả sử tôi có 2 học 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.

Ví dụ:

<?php

$a = Array(1,2,3);

?>

Lúc này $a sẽ là 1 mảng gồm 3 phần tử số nguyên là 1, 2 và 3

Các phần tử trong mảng $a được tạo ở trên sẽ được đánh số thứ tự từ 0, 1 cho đến 2 Để truy cập tới từng phần tử của $a.

NOTE: Các bạn dùng hàm var_dump($mang) hoặc print_r($mang); để in ra các phần tử của mảng để test và debug trong quá trình học.

Vì mảng(array) là dữ liệu như tôi đã nói ở trên là cực kì quan trọng nên tôi sẽ dành 1 bài để nói về mảng ở bài học sau.

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

Kiểu Object

Kiểu object (đối tượng) lưu giữ 1 bản thể (instance) của 1 lớp (class). Ta sẽ tìm kiểu kỹ thêm về kiểu object trong phần Lập trình hướng đối tượng với PHP.

Kiểu Resource

Kiểu resource (tài nguyên) được sử dụng bởi các hàm đặt biệt của PHP (ví dụ hàm mysql_connect sẽ trả về kiểu resource). Ta sẽ tìm hiểu kỹ hơn về kiểu resource trong các bài viết khác.

Bài tiếp theo “Toán tử và biểu thức trong PHP“.