Bài 3: Các kiểu dữ liệu và phạm vi biến trong PHP

Qua bài ta đã biết các khai báo hằng và biến trong PHP, qua bài 3 này chúng ta sẽ tìm hiểu vềcác kiểu dữ liệu trong PHP và phạm vi biến.

PHP có tổng cộng tám loại dữ liệu được sử dụng cho các biến, các kiểu dữ liệu này thường được hiểu ngầm dựa vào giá trị của biến mà không cần phải khai báo. Để có thể học web chúng ta cần phải nắm vững các kiểu dữ liệu và toán tử của PHP.

  • Integers: là kiểu số nguyên, không có dấu thập phân, ví dụ 1234.
  • Doubles: là kiểu số thực, ví dụ 3.64576.
  • Booleans: chỉ có hai giá trị true hoặc false.
  • NULL: là một kiểu dữ liệu đặc biệt chỉ có một giá trị: NULL.
  • Strings: là chuỗi ký tự, giống như ‘tôi học php’.
  • Array: kiểu dữ liệu mảng – là một tập hợp các phần tử có cùng kiểu dữ liệu với nhau.
  • Object: là 1 thể hiện (instance) của 1 lớp đã được định nghĩa trước – được sử dụng trong lập trình hướng đối tượng.
  • Resource: là kiểu dữ liệu đặc biệt dùng để lưu trữ tham chiếu đến các tài nguyên bên ngoài PHP chẳng hạn như kết nối đến database.

Không có giới hạn về độ dài của chuỗi – trong phạm vi giới hạn sẵn có của bộ nhớ, bạn có thể tạo chuỗi dài tùy ý.

Chuỗi được bao quanh bởi các dấu ngoặc kép (ví dụ “abc”) hoặc ngoặc đơn (ví dụ ‘cde’). Để nối các chuỗi lại với nhau chúng ta dùng dấu “.” Một số ký tự bắt đầu bằng dấu gạch chéo ngược (\) được sử dụng để thay thế cho các ký tự đặc biệt

Một số ký tự đặc biệt trong chuỗi:

  • \ N được thay thế bằng ký tự xuống dòng
  • \ R được thay thế bởi ký tự carriage-return (di chuyển con trỏ đến vị trí bắt đầu của dòng hiện tại mà không thay đổi tọa độ y)
  • \ T được thay thế bằng ký tự tab
  • \ $ Được thay thế bằng  ký hiệu $
  • \ “Được thay thế bằng một dấu nháy kép (“)
  • \\ Được thay thế bằng một dấu gạch chéo ngược (\)

Ví dụ:

1
2
3
4
5
6
7
8
<?php
$line = "A newline is \n";
$line .= "A carriage return is \r";
$line .= "A tab is \t";
$line .= "A dollar sign is \$";
$line .= "A double-quote is \"";
echo $line;
?>

Dấu .= được sử dụng để nối giá trị hiện tại của biến với giá trị mới của biến (sử dụng cho chuỗi).
Kết quả in ra:

A newline is
A carriage return is
A tab is     A dollar sign is $A double-quote is ”

Phạm vi của biến trong PHP

Biến cục bộ: Một biến được khai báo trong một hàm được xem là cục bộ (local); nghĩa là nó chỉ có thể được tham chiếu chỉ trong hàm đó. Việc gán biến bên ngoài hàm sẽ được xem như là một biến khác.

Ví dụ:

1
2
3
4
5
6
7
8
9
10
11
<?php
$y = 4;
function assign_y () {
$y = 0;
print "\$y inside function is $y.
";
}
assign_y();
print "\$y outside of function is $y.
";
?>

Kết quả xuất ra:

$y inside function is 0.
$y outside of function is 4.

Tham số: Tham số được khai báo sau tên hàm và nằm trong dấu ().

Ví dụ:

1
2
3
4
5
6
7
8
<?
function multiply ($value) {
    $value = $value * 10;
    return $value;
}
$retval = multiply (10);
Print "Return value is $retval\n";
?>

Kết quả in ra:

Return value is 100

Biến toàn cục: khác với biến cục bộ, biến toàn cục có thể được truy cập từ bất kì đâu trong chương trình. Tuy nhiên, để có thể được sửa đổi, một biến toàn cục phải được khai báo là global trong hàm bằng cách đặt các từ khóa GLOBAL ở phía trước của biến đã có sẵn.

Ví dụ:

1
2
3
4
5
6
7
$a = 15;
function add () {
GLOBAL $a;
$a++;
print "value of a is $a";
}
add ();

Kết quả in ra:

value of a is 16

Biến tĩnh (static): khác với tham số sẽ bị mất giá trị khi thoát khỏi hàm, biến tĩnh không bị mất giá trị khi thoát khỏi hàm. Biến tĩnh được khai báo bằng từ khóa STATIC.

Ví dụ:

1
2
3
4
5
6
7
8
9
10
function keep_track() {
   STATIC $count = 0;
   $count++;
   print $count;
   print "
";
}
keep_track();
keep_track();
keep_track();

Kết quả in ra

1
2
3