Tổng quan về biến và kiểu dữ liệu PHP

Biến là cách lưu trữ thông tin trong chương trình PHP. Những điều cơ bản về biến của PHP gồm có:

  • Tất cả các biến của PHP đều có tên bắt đầu bằng ký tự dollar ($). Ví dụ $a, $name, $class ...
  • Giá trị của biến là giá trị được gán sau cùng bằng toán tử gán =. Ví dụ $a = 5;
  • Trong PHP có thể khai báo biến trước khi gán nhưng không bắt buộc. Nhưng nhớ là khi sử dụng trong biểu thức thì biến đã được khai báo hoặc đã được gán.
  •  Biến trong PHP không bị cố định sử dụng với một kiểu dữ liệu nào đó, nó có thể là số, ký tự, sâu ký tự. Không như C# khi khai báo biến là số nguyên mà gán cho biến đó sâu ký tự thì là lỗi, nhưng PHP không có cơ chế này. Điều này được cái linh hoạt nhưng lại dễ để lại bugs.
  • Một biến được sử dụng trước khi gán giá trị cho nó thì nó có các giá trị mặc định.
  • PHP có cơ chế tự động chuyển kiểu dữ liệu tùy theo tình huống sử dụng. Ví dụ biến $a = 5 ($a lưu trữ số nguyên 5) thì tùy cách sử dụng sau này có thể hiểu $a là số 5, $ là ký tự '5', $a là sâu ký tự: $b = $a+5; $c = $a.'10';

Kiểu dữ liệu trong PHP có 8 loại khởi tạo biến như sau:

  • Kiểu dữ liệu đơn giản
    • Số nguyên : ví dụ  2017.
    • Kiểu Double (số thực).
    • Kiểu Boolean: logic với giá trị true hoặc false.
    • NULL: kiểu này cho biết biến chẳng có gì cả (trống rỗng).
    • Sâu ký tự, là chuỗi các ký tự ví dụ 'Lập trình PHP'.
  • Kiểu dữ liệu phức tạp
    • Mảng (Array): là tập hợp các giá trị trong một thứ tự.
    • Object: đó là thực thể do PHP sinh ra từ các định nghĩa lớp, thực thể này chứa trong nó dữ liệu và các hàm thi hành.
  • Kiểu dữ liệu đặc biệt:
    • Resource (Tài nguyên): là một kiểu biến đắc biện, nó nắm giữ thông tin tham chiếu tới các tài nguyên ngoài phạm vị PHP (như kết nối dữ liệu).

Kiểu dữ liệu phức tạp thì có thể mang trong nó các kiểu dữ liệu khác còn kiểu đơn giản thì không.

Số nguyên

Dữ liệu là các số không có dấu chấm động ví dụ 2010, nó có số nguyên dương và số nguyên âm. Gán vào biến như vị dụ:

$int_bien = 2333; 
$int_bien_tong = -4354 + 7687; 

Mặc định số như vậy là hệ thập phân (cơ số 10), trong PHP số nguyên còn biểu diễn bằng cơ số 8, cơ số 16. Với cơ số bát phân thì biểu diễn bằng cách gõ số 0 (ví dụ 144) ở đầu, cơ số 16 gõ ký hiệu 0x (ví dụ 0x64). Hầu hết các hệ thống số nguyên lưu trữ trong bộ nhớ bằng 32 bit dữ liệu, do đó giá trị lớn nhất cho số nguyên thông thường là 2,147,483,647.

Số thực

Dữ liệu dạng số có các dấu chấm động ví dụ $PI = 3.14

Kiểu Bolean Logic

Boolean thì chỉ nhận hai giá trị là true hoặc false. PHP cung cấp hai hằng số cho kiểu dữ liệu này có tên là TRUEFALSE.

if (TRUE) 
   print("Hello<br>"); 
else 
   print("Never out<br>"); 

Việc diễn giải một kiểu dữ liệu khác sang như Integer, String sáng kiểu bolean đúng - sai phụ thuộc vào giá trị mà biến kiểu dữ liệu khác đang giữ:

  • Nếu giá trị là dạng số, thì bằng 0 là false và các giá trị còn lại là true.
  • Nếu là chuỗi thì chuỗi rỗng (không có ký tự nào) hoặc có một ký tự thì là ký tự '0' thì là false, còn lại là true.
  • Nếu là NULL thì luôn là false.
  • Nếu biến là mảng thì nếu mảng trống (không có phần tử) thì false, còn lại nếu có phần từ thì là true.
  • Nếu biến tài nguyên có true là có hiệu lực, false là không.
  • Cuối cùng là đừng có dùng kiểu số thực như là bolean. Chả biết khi nào true, false.

Dữ liệu NULL

Đây là kiểu dữ liệu đặc biệt, cho biết biến chẳng có giá trị nào. Gán một biến là NULL bằng cách:

$yourvar = NULL;

Một biến là NULL thì có ý nghĩa sử dụng sau:

  • Trong toán tử Logic nó là FALSE.
  • Kiểm tra bằng hàm isset() nó trả về FALSE.

Chuỗi ký tự

Chuối ký tự như tên của nó là một chuỗi gồm các ký tự, chuỗi biểu diễn bằng hai cách: Nếu là chuỗi cố định thì là biểu diễn bằng cặp '' ví dụ 'Học PHP'; Nếu chuối đó sẽ được chèn giá trị của biến khác vào vị trí cụ thể trong chuỗi thì dùng cặp dấu "".

Ví dụ:

$learn = 'lean PHP';
$text = "I $learn"; //Chuỗi cuối cùng của $text sẽ là 'I learn PHP';

 Không có giới hạn về độ dài của chuỗi (nó phụ thuộc vào hệ thống của bạn - bộ nhớ).

Chuỗi mà biểu diễn bằng cặp nháy kép "" thì lưu ý mấy điều sau:

  •  Ký tự nào đi sau dấu \ thì sẽ bị thay thế bằng một ký tự đặc biệt
  • Các tên biến ($) được thay thế bằng giá trị của biến.

 Một số giá trị đặc biệt (escape-sequence) như sau:

  • \n :ký tự dòng mới
  • \r: ký tự về đầu dòng
  • \t: ký tự tab
  • \$: ký tự $
  • \": ký tự "
  • \\: ký tự \

 Ví dụ:

$a = 5;
$text = "Biến \$a có giá trị $a"; //Kết quả: 'Biến $a có giá trị 5'


Quy tắc đặt tên biến PHP

Ngoài ký hiệu $ cho biết sau đó là một tên biến, thì tên biến có các quy tắc sau:

  • Bắt đầu bằng mọt ký tự chữ(A-z) hoặc bàng dấu _ (gạch dưới): Ví dụ các biến lợp lệ $a, $Abc, $_a; không hợp lệ như $1a;
  • Không được sử dụng các ký tự đặc biệt:+,-,%,& ...

Phân loại biến theo phạm vi và cách sử dụng

Phạm vị có thể hiệu là vùng mà biến có hiệu lực. PHP có 4 loại phạm vị sau:

  • Các biến cục bộ
  • Các tham số của hàm
  • Các biến toàn cục
  • Các biến tĩnh

Biến cục bộ

Biến khai báo bên trong một hàm là cục bộ, biến đó chỉ sử dụng trong nội bộ hàm. Nếu gán giá trị cho biến ở phạm vi bên ngoài khai báo hàm thì không có ý nghĩa gì cả.

<? 
$x = 4; 

function assignx () { 
$x = 0; 
print "\$x trong hàm là $x.  "; 
} 


assignx(); 
print "\$x ngoài hoàm là $x.  "; 
?>

//OUTPUT
$x trong hàm là 0.
$x ngoài hàm là 4. 

 Tham số hàm

Tham số hàm sẽ thảo luận chi tiết ở mục về hàm trong PHP.

Biến toàn cục (Global)

Khác với biến cục bộ, biến toàn cục truy cập được từ nhiều nơi trong chương trình. Khai báo và sử dụng biến toàn cục thì khi khai báo dùng từ khóa GLOBAL.

<? 
$somevar = 15; 

function plus() { 
  GLOBAL $somevar; 
  $somevar++; 
  print "$somevar"; 
} 

addit(); 
?>
//OUTPT: 16; 

Biến tĩnh

Biến tĩnh (static), các biến thông thường khai báo trong hàm nó sẽ bị hủy khi hàm thi hành xong (kết thúc), tuy nhiên nếu khai báo là biến tĩnh thì biến này không bị hủy, có thể dùng lại ở lần gọi tiếp theo của hàm. Khai báo bằng từ khóa static trước tên biến.
 

<? 
function count() { 
   STATIC $count = 0; 
   $count++; 
   print $count; 
   print " "; 
} 
count(); 
count(); 
count(); 
?>
//OUTPUT:
1
2
3 
Đăng ký theo dõi ủng hộ kênh