[PHP] Phần 4: Biến

Trong bài viết này, chúng ta sẽ tìm hiểu cách về khai báo và sử dụng biến trong PHP. Biến chủ yếu dùng để lưu trữ thông tin.

Tạo biến
Trong PHP, 1 biến được bắt đầu với ký hiệu $ (đô la), theo sau là tên biến.

<?php
$text = "dammio.com";
$x = 3;
$y = 8.67;
?>


Sau khi thực hiện đoạn mã trên, biến $text có giá trị là “dammio.com”, biến $x có giá trị là 3, và biến $y có giá trị là 8.67. Lưu ý nếu gán cho biến là 1 chuỗi thì chúng ta phải dùng nháy đôi hoặc nháy kép kẹp hai 2 bên giá trị chuỗi. Không giống như các ngôn ngữ lập trình khác, PHP không có lệnh để định nghĩa kiểu dữ liệu của biến, biến sẽ có kiểu dữ liệu dựa theo giá trị đầu tiên mà nó được gán giá trị. Điều này làm cho PHP trở nên lỏng lẻo và cũng là ưu điểm để xây dựng mã nguồn lập trình nhanh, gọn.

Biến trong PHP
Một biến trong PHP có thể có tên ngắn gọn (như biến x, y) hay là tên có ý nghĩa như (age, text, total_students). Các quy định về biến trong PHP:

  • Biến có thể bắt đầu bằng dấu $, theo sau tên biến
  • Biến có thể dùng ký tự hoặc dấu gạch dưới
  • Biến không thể bắt đầu là 1 số (ví dụ 9age là biến không hợp lệ)
  • Biến chỉ có thể chứa ký tự, số và dấu gạch chân (A-Z, a-z, 0-9, và _)
  • Biến trong PHP phân biệt hoa, thường ($age và $AGE là 2 biến khác nhau)

Hiển thị giá trị biến
Hàm echo trong PHP dùng để hiển thị biến trên trình duyệt Web. Ví dụ đầu tiên là dùng hàm echo để hiển thị kết quả biến $txt ra màn hình, chúng ta có thể dùng toán tử . (dấu chấm) để nối 2 chuỗi với nhau.
variable_example1

<?php
$txt = "dammio.com";
echo "Tôi thích học Web ở trang $txt!<br/>";
echo "Tôi thích học Web ở trang " . $txt . "!";
?>

Ví dụ tiếp theo hiển thị kết quả phép cộng giữa 2 biến x và y với kết quả là 7.

<?php
$x = 3;
$y = 4;
echo $x + $y;
?>

PHP là dạng ngôn ngữ lỏng lẻo
Nếu bạn để ý, trong các ví dụ trên, chúng ta không có khai báo dạng dữ liệu cho các biến trong PHP. PHP tự động chuyển đổi kiểu dữ liệu biến dựa trên giá trị của nó. Trong các ngôn ngữ khác, như C, C++ hay Java, lập trình viên buộc phải khai báo tên và kiểu dữ liệu trước khi gán giá trị cho biến.

Biến cục bộ và biến toàn cục
Khái niệm biến cục bộ và biến toàn cục trong PHP cũng tương tự như các ngôn ngữ khác. Một biến được khái báo bên ngoài 1 hàm có quy mô toàn cục (GLOBAL SCOPE) và có thể được truy xuất bên ngoài hàm.
local_global_variables

<?php
$x = 4; // quy mô toàn cục

function myTest() {
    // sử dụng biến x bên trong hàm sẽ gây ra lỗi vì biến x là biến toàn cục
    echo "<p>Giá trị biến x bên trong hàm là: $x</p>";
} 
myTest();

echo "<p>Giá trị biến x bên ngoài hàm là: $x</p>";
?>

Trong ví dụ trên, biến toàn cục chỉ được truy xuất ở phần toàn cục bên ngoài hàm, còn biến cục bộ cũng chỉ truy xuất ở bên trong hàm. Ví dụ tiếp theo mô tả việc truy xuất biến cục bộ bên ngoài hàm thì sẽ phát sinh lỗi.
local_variable

<?php
function myTest() {
    $x = 4; // quy mô cục bộ
    echo "<p>Giá trị biến x bên trong hàm là: $x</p>";
} 
myTest();

// dùng biến x bên ngoài hàm sẽ phát lỗi
echo "<p>Giá trị biến x bên ngoài hàm là: $x</p>";
?>

Bạn có thể khai báo các biến cục bộ cùng 1 tên ở các hàm khác nhau, bởi vì biến cục bộ chỉ có thể được truy xuất bên trong hàm mà nó khai báo mà không ảnh hưởng đến giá trị biến cục bộ ở các hàm khác.

Từ khóa global
Từ khóa global được dùng để truy cập một biến toàn cục bên trong 1 hàm. Để làm được việc này, bạn chỉ cần dùng từ khóa global trước các biến (bên trong 1 hàm) như ví dụ sau.

<?php
$x = 5;
$y = 6;

function myTest() {
    global $x, $y;
    $y = $x + $y;
}

myTest();
echo $y; // kết quả là 11
?>

PHP cũng lưu trữ toàn bộ biến bên trong 1 mảng gọi là #GLOBAL[index] với index là tên của biến. Mảng này cũng có thể truy cập được bên trong các hàm và có thể sử dụng để cập nhật giá trị biến toàn cục trực tiếp. Ví dụ trên được viết lại thành

<?php
$x = 5;
$y = 6;

function myTest() {
    $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
} 

myTest();
echo $y; // kết quả 11
?>

Từ khóa static
Thông thường, khi 1 hàm được thực thi/hoàn thành, tất cả giá trị biến sẽ bị xóa. Tuy nhiên, 1 số trường hợp nếu chúng ta muốn giá trị biến cục bộ không bị xóa để thực hiện các tác vụ khác, chúng ta có thể dùng từ khóa static để định nghĩa cho biến.

<?php
function myTest() {
    static $x = 1;
    echo $x;
    $x++;
}

myTest();
myTest();
myTest();
?>

Giá trị của ví dụ trên là 123, hàm myTest() đầu tiên in ra giá trị 1 với giá trị x cuối cùng là 2, hàm myTest() thứ hai in ra 2 và giá trị x cuối cùng là 3, hàm myTest() cuối cùng in ra giá trị là 3 với giá trị biến cuối cùng x là 4. Ba hàm myTest() sẽ in ra kết quả là 123. Nếu ví dụ trên không dùng từ khóa static thì kết quả là 111.

Tóm lại, bài này đã giúp các bạn hiểu được cách tạo, gán giá trị và sử dụng biến trong PHP.

Bình luận Facebook

Để lại bình luận

Hãy là người đầu tiên bình luận!

Thông báo khi có
avatar
1000
wpDiscuz