PHP – Biến

Biến (Variables) là các “containers” lưu giữ thông tin.

Tạo (Khai báo) một biến

Trong PHP biến bắt đầu bằng ký hiệu $ theo sau là tên biến.

<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
?>

Sau khi thực thi câu lệnh trên, biến $txt giữ giá trị Hello world!, biến $x giữ giá trị 5 và $y giữ giá trị 10.5

Khi bạn gán giá trị là text cho biến, phải đặt trong cặp nháy đơn/kép.

Không giống ngôn ngữ lập trình khác, PHP không có câu lệnh khai báo biến, nó được tạo khi bạn gán giá trị vào biến.

Biến trong PHP

Một biến có thể ngắn (ví dụ x, y), hoặc tên mô tả khác (age, carname, total_volume).

Quy tắt đặt biến

  • Biến phải bắt đầu bằng $ và theo sau là tên biến.
  • Tên biến phải bắt đầu bằng chữ hay dấu gạch dưới (_).
  • Tên biến không thể bắt đầu bằng số.
  • Tên biến chỉ có thể chứa số, chữ và dấu gạch dưới (A-z, 0-9, _).
  • Tên biến phân biệt hoa thường ($age và $AGE là 2 biến khác nhau).

Xuất dữ liệu biến

Câu lệnh echo trong PHP thường được sử dụng để xuất dữ liệu ra màn hình.

<?php
$txt = "W3Schools.com";
echo "I love $txt!";
?>

Hoặc có thể viết lại ví dụ trên

<?php
$txt = "W3Schools.com";
echo "I love " . $txt . "!";
?>

Xuất ra tổng 2 biến.

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

PHP là Loosely Typed Language (Loại ngôn ngữ lỏng lẻo)

Trong ví dụ trên, chúng ta không khai báo data type của biến.

PHP sẽ tự chuyển biến theo đúng data type, khai báo nó dựa trên giá trị của biến.

Trong C, C++, và Java, Lập trình viên phải khai báo biến và type của nó trước khi sử dụng.

Phạm vi của biến (Variables Scope)

Trong PHP biến được khai báo bất kỳ đâu trong scipt.

Phạm vi biến là phần scipt mà biến có thể tham chiếu/sử dụng.

PHP có 3 loại biến scope:

  • local
  • global
  • static

Global và Local Scope

Một biến định nghĩa bên ngoài function là GLOBAL SCOPE và chỉ có thể sử dụng bên ngoài function.

<?php
$x = 5; // global scope

function myTest() {
    // using x inside this function will generate an error
    echo "<p>Variable x inside function is: $x</p>";
} 
myTest();

echo "<p>Variable x outside function is: $x</p>";
?>

Một biến định nghĩa bên trong function là LOCAL SCOPE và chỉ có thể sử dụng bên trong function.

<?php
function myTest() {
    $x = 5; // local scope
    echo "<p>Variable x inside function is: $x</p>";
} 
myTest();

// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
?>

global Keyword

global Keyword được dùng để truy cập một biến global bên trong function.

Để sử dụng, thêm từ global trước biến bên trong function

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

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

myTest();
echo $y; // outputs 15
?>

PHP lưu trữ tất cả biến global trong mảng $GLOBALS[index]. index giữ tên của biến. Mảng này có thể được truy cập từ bên trong function và có thể được sử dụng để update giá trị của global trực tiếp.

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

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

myTest();
echo $y; // outputs 15
?>

static Keyword

Thông thường, khi function được thực thi, tất cả biến của nó sẽ được xóa. Trong một số trường hợp, chúng ta muốn local variable không bị xóa, có thể sử dụng static Keyword.

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

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

Sau khi gọi, biến sẽ vẫn giữ thông tin nó chứa từ lần gọi function trước.

Biến này vẫn là biến local.