Cách chính để lưu trữ thông tin trong chương trình PHP là sử dụng một biến.
Dưới đây là những điều quan trọng nhất bạn nên biết về biến trong PHP.
- Tất cả các biến trong PHP đều được kí hiệu với dấu $ ở đầu.
- Giá trị của một biến là giá trị của phép gán gần đây nhất của nó.
- Các biến được gán với toán tử =, biến ở bên trái còn biểu thức được ước lượng ở bên phải.
- Biến có thể, nhưng không cần, được khai báo trước khi gán giá trị.
- Biến trong PHP không có các kiểu nội tại, tức là một biến không biết trước có hay không nó sẽ được sử dụng để lưu trữ một số hoặc một chuỗi ký tự.
- Biến, được sử dụng trước khi chúng được gán, có các giá trị mặc định.
- PHP làm rất tốt việc chuyển đổi tự động từ kiểu này sang kiểu khác khi cần thiết.
- Biến trong PHP giống với Perl.
PHP có tổng tất cả 8 kiểu dữ liệu mà chúng ta sử dụng để xây dựng các biến.
- Integer − số nguyên. Ví dụ 1989
- Double − số thực. Ví dụ 3.14159 hay 49.1.
- Boolean − có 2 giá trị TRUE hoặc FALSE.
- NULL − là một kiểu đặc biệt, nó chỉ có giá trị: NULL
- String − là chuỗi các kí tự.
- Array − là tập hợp được đặt tên và lập chỉ mục của các giá trị khác.
- Object − là instance (sự thể hiện) của các lớp mà lập trình viên tự định nghĩa, nó có thể đóng gói các các loại giá trị và hàm khác nhau, nó dành riêng cho các lớp.
- Resource − là một biến đặc biệt nó giữ tham chiếu tới các tài nguyên ngoại vi đến PHP (ví dụ: kết nối Database).
5 kiểu đầu tiên là các kiểu biến đơn giản, 2 kiểu tiếp theo (array và object) là các kiểu phức hợp mà có thể đóng gói các giá trị tùy ý của các kiểu tùy ý, trong khi các kiểu đơn giản không làm được.
Trong chương này, chúng ta sẽ giải thích các kiểu biến đơn giản. Array và Object sẽ được giải thích riêng rẽ trong các chương sau.
Kiểu số nguyên trong PHP
Chúng là tất cả các số, bao gồm cả nguyên âm và nguyên dương, nhưng không bao gồm số thực. Nó là kiểu đơn giản nhất. Chúng có thể được gán cho một biến hoặc được sử dụng trong biểu thức như sau:
$bien_int = 12345; $bien_int_khac = -12345 + 12345;
Kiểu số nguyên có thể trong hệ thập phân, hệ bát phân và hệ thập lục phân. Mặc định là hệ thập phân, hệ bát phân - số nguyên được chỉ định bắt đầu với số 0 và hệ thập lục phân bắt đầu với 0x.
Đối với hầu hết các nền tảng phổ biến, miền giá trị từ –2,147,483,648 tới +2,147,483,647.
Kiểu Double trong PHP
Chúng giống dạng 3.14159 hoặc 49.1. Theo mặc định kiểu double sẽ in số vị trí thập phân nhỏ nhất. Ví dụ, bạn theo dõi code sau:
<?php $bien_double_1 = 2.2888800; $bien_double_2 = 2.2111200; $ket_qua = $bien_double_1 + $bien_double_2; print("$bien_double_1 + $bien_double_2 = $ket_qua <br>"); ?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Kiểu Boolean trong PHP
Chúng chỉ có hai giá trị là: true hoặc false. PHP cung cấp một cặp hằng số để sử dụng như là các kiểu Boolean: TRUE và FALSE, có thể được sử dụng giống như:
if (TRUE) print("Dòng văn bản này luôn luôn được in trên trình duyệt.<br>"); else print("Dòng văn bản này sẽ không bao giờ được in trên trình duyệt.<br>");
Thông dịch các kiểu dữ liệu khác thành kiểu Boolean
Đây là quy tắc để xác định tính đúng đắn của bất kì giá trị nào chưa phải là kiểu Boolean.
- Nếu giá trị là một số, nó là false nếu nó bằng 0 và true nếu khác 0.
- Nếu giá trị là một chuỗi, nó false nếu chuỗi là rỗng (không tồn tại kí tự nào) hoặc là chuỗi "0", nếu không là true.
- Giá trị của kiểu NULL luôn luôn là false.
- Nếu giá trị là một array, nó false nếu nó không chứa các giá trị khác và nếu không là true. Với một object, chứa một giá trị nghĩa là có một biến thành viên đã được gán một giá trị.
- Resource hợp lệ là true (mặc dù có một vài hàm trả về các resource khi chúng thành công, và trả về FALSE nếu thất bại).
- Đừng sử dụng double như là Boolean.
Mỗi biến sau đây có giá trị true được nhúng trong tên của nó khi được sử dụng trong một ngữ cảnh Boolean.
$true_num = 3 + 0.14159; $true_str = "Vi du mot chuoi" $true_array[49] = "Mot mang cac phan tu"; $false_array = array(); $false_null = NULL; $false_num = 999 - 999; $false_str = "";
Kiểu NULL trong PHP
NULL là một kiểu đặc biệt mà chỉ có một giá trị NULL. Để cung cấp cho biến giá trị NULL, đơn giản bạn gán nó như sau:
$my_var = NULL;
Theo qui ước, hằng đặc biệt NULL là viết hoa, nhưng thực sự nó là không phân biệt kiểu chữ, và bạn cũng có thể viết như sau:
$my_var = null;
Một biến mà đã được gán NULL sẽ có các thuộc tính sau:
- Nó ước lượng là FALSE trong một ngữ cảnh Boolean.
- Nó trả về FALSE khi được kiểm tra với hàm IsSet() trong PHP.
Kiểu string trong PHP
Chúng là các dãy ký tự, giống như "Hoc PHP co ban va nang cao tai Vietjack.com". Dưới đây là các ví dụ về chuỗi trong PHP.
$string_1 = "Vi du chuoi trong dau nhay kep"; $string_2 = "Hoc PHP co ban va nang cao tai Hoc.tv"; $string_0 = ""; // ví dụ một chuỗi không có ký tự
Bạn xét ví dụ sau để so sánh sự khác nhau khi sử dụng dấu nháy đơn và dấu nháy kép:
<?php $bien_1 = "name"; $bien_2 = '$bien_1 sẽ không được in!'; print($bien_2); print "<br>"; $bien_2 = "$bien_1 sẽ được in!"; print($bien_2); ?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Giải thích: Ta nhận thấy chuỗi thứ nhất không hề thay đổi. Chuỗi thứ 2 biến $variable đã được thay thế bằng name. Như vậy chuỗi sử dụng nháy đơn là một chuỗi tĩnh, còn chuỗi sử dụng nháy kép là một chuỗi động, thay đổi tùy theo giá trị của biến.
Không có giới hạn về độ dài của chuỗi, có thể dài tùy ý nếu bộ nhớ cho phép.
Các chuỗi được giới hạn bởi các dấu nháy kép được PHP xử lý bằng 2 cách sau đây:
- Các chuỗi kí tự bắt đầu với (\) được thay thế với một kí tự đặc biệt
- Các biến (bắt đầu với $) được thay thế bằng biểu diễn chuỗi của giá trị của nó.
Các quy tắc thay thế:
- \n được thay thế bằng ký tự newline (dòng mới)
- \r được thay thế bởi ký tự carriage-return, được hiểu là đưa con trỏ về đầu dòng nhưng không xuống dòng.
- \t được thay thế bởi ký tự tab
- \$ được thay thế bằng một dấu $
- \" được thay thế bằng một dấu nháy kép "
- \\ được thay thế bằng một dấu nháy đơn \
Cú pháp Here Document (Heredoc) trong PHP
Bạn có thể gán nhiều dòng cho một biến chuỗi đơn bởi sử dụng cú pháp here document như sau:
<?php echo <<<END Ví dụ cú pháp "Here Document" trong PHP. Đây là một cú pháp rất hữu ích. <br></br> END; ?>
Bắt đầu với <<<END và kết thúc với END;, cú pháp này thực sự rất hữu ích với các chuỗi dài và có thể tránh được nhiều vấn đề về trích dẫn với các dấu nháy ("").
Ví dụ, nếu bạn cần hiển thị dấu nháy trích dẫn kép " thì bạn cần sử dụng dấu gạch chéo \ như sau:
<?php $x = "Ví dụ minh họa cách trích dẫn \"dấu nháy\" trong PHP!"; print $x; ?>
Với Heredoc, bạn không cần sử dụng dấu gạch chéo \
<?php $x = <<<EOF Ví dụ minh họa cách trích dẫn "dấu nháy" trong PHP! EOF; print $x; ?>
Cả hai ví dụ đều cho kết quả:
Đặt tên biến trong PHP
Dưới đây là các qui tắc khi đặt tên một biến trong PHP:
- Tên biến phải bắt đầu với một chữ cái hoặc ký tự dấu gạch dưới (_).
- Một tên biến có thể gồm các số, chữ cái, ký tự dấu gạch dưới (_), nhưng bạn không thể sử dụng các ký tự như + , - , % , ( , ) . & , .v.v.
Không có giới hạn kích cỡ cho các biến trong PHP.
Phạm vi biến trong PHP
Phạm vi (scope) có thể được định nghĩa như là phạm vi khả dụng của biến được khai báo trong chương trình. Các biến trong PHP có thể là một trong 4 phạm vi sau:
- 1.Biến cục bộ trong PHP
- 2.Tham số hàm trong PHP
- 3.Biến toàn cục trong PHP
- 4.Biến tĩnh (hay biến static) trong PHP
a. Biến cục bộ trong PHP
Một biến được khai báo trong một hàm được xem như là cục bộ; nghĩa là, nó có thể được tham chiếu chỉ bởi hàm đó. Bất kỳ phép gán nào bên ngoài hàm này sẽ được xem như là một biến hoàn toàn khác với biến được chứa trong hàm đó.
<?php
$x = 10;
function assignx () {
$x = 0;
print "Giá trị biến $x bên trong hàm là $x. <br />";
}
assignx();
print "Giá trị biến $x bên ngoài hàm là $x. <br />";
?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
b. Tham số hàm trong PHP
Ghi chú − Hàm trong PHP được trình bày chi tiết trong chương Hàm trong PHP
Nói ngắn gọn, một hàm là một đơn vị nhỏ của chương trình mà có thể nhận một số input trong form là các tham số và thực hiện các tiến trình xử lý và có thể trả về một số giá trị.
Tham số hàm được khai báo ở sau tên hàm và bên trong dấu ngoặc đơn. Chúng được khai báo khá giống một kiểu biến điển hình, như sau:
<?php
// Nhân giá trị với 11 và trả về kết quả cho lời gọi hàm
function hamNhan ($value) {
$value = $value * 11;
return $value;
}
$ketqua = hamNhan (11);
Print "Giá trị trả về $ketqua\n";
?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
c. Biến toàn cục trong PHP
Trái ngược với biến cục bộ, một biến toàn cục có thể được truy cập trong bất kỳ phần chương trình nào. Tuy nhiên, để được chỉnh sửa, một biến toàn cục phải được khai báo một cách tường minh là GLOBAL trong hàm mà nó chuẩn bị được sửa đổi. Điều này được thực hiện bằng việc đặt từ khóa GLOBAL ở trước biến mà nên được xác định là toàn cục. Việc đặt từ khóa này ở trước biến đang tồn tại nói cho PHP sử dụng biến có tên như thế. Bạn theo dõi ví dụ:
<?php
$bien_toan_cuc = 66;
function hamDemo() {
GLOBAL $bien_toan_cuc;
$bien_toan_cuc++;
print "Giá trị biến toàn cục là $bien_toan_cuc";
}
hamDemo();
?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
d. Biến tĩnh (hay biến static) trong PHP
Kiểu biến cuối cùng đã được đề cập trong phạm vi là biến tĩnh. Ngược với các biến được khai báo như là các tham số hàm, mà bị hủy khi thoát khỏi hàm, một biến tĩnh sẽ không mất giá trị của nó khi hàm thoát ra và sẽ vẫn giữ giá trị đó nếu hàm đó được gọi lại lần nữa.
Bạn có thể khai báo một biến là biến tĩnh bằng việc đặt từ khóa STATIC ở trước tên biến.
<?php
function ham_demo() {
STATIC $count = 3.14;
$count++;
print $count;
print "<br />";
}
ham_demo();
ham_demo();
ham_demo();
?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả: