Các biến PHP

Các biến là "các thùng chứa" để lưu trữ thông tin.

Tạo (Khai báo) Biến PHP
Trong PHP, một biến bắt đầu bằng $dấu, theo sau là tên của biến:

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

Kết quả:


Sau khi thực hiện các câu lệnh trên, biến $txtsẽ giữ giá trị Hello world!, biến $xsẽ giữ giá trị 5và biến $ysẽ giữ giá trị 10.5.

Lưu ý: Khi bạn gán giá trị văn bản cho một biến, hãy đặt dấu ngoặc kép quanh giá trị.

Lưu ý: Không giống như các ngôn ngữ lập trình khác, PHP không có lệnh khai báo một biến. Nó được tạo ra ngay khi bạn lần đầu tiên gán giá trị cho nó.

Hãy nghĩ về các biến như các container để lưu trữ dữ liệu.

Các biến PHP
Một biến có thể có một tên ngắn (như x và y) hoặc một tên mô tả nhiều hơn (tuổi, carname, Total_volume).

Quy tắc cho các biến PHP:

Một biến bắt đầu bằng $dấu, theo sau là tên của biến
Tên biến phải bắt đầu bằng một chữ cái hoặc ký tự gạch dưới
Một tên biến không thể bắt đầu bằng một số
Tên biến chỉ có thể chứa các ký tự chữ và số dưới (Az, 0-9 và _)
Tên biến là phân biệt chữ hoa chữ thường ( $agevà $AGElà hai biến khác nhau)
Hãy nhớ rằng tên biến PHP là phân biệt chữ hoa chữ thường!

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

Ví dụ sau sẽ cho thấy cách xuất văn bản và một biến:

Thí dụ
<?php
$txt = "abc";
echo "I love $txt!";
?>

Ví dụ sau sẽ tạo ra cùng một đầu ra như ví dụ trên:

Thí dụ
<?php
$txt = "abc";
echo "I love " . $txt . "!";
?>

Ví dụ sau sẽ xuất tổng của hai biến:

Thí dụ
<?php
$x = 5;
$y = 4;
echo $x + $y;
?>

Lưu ý: Bạn sẽ tìm hiểu thêm về echotuyên bố và cách xuất dữ liệu ra màn hình trong chương tiếp theo.

PHP là một ngôn ngữ đánh máy lỏng lẻo
Trong ví dụ trên, lưu ý rằng chúng ta không phải nói với PHP loại dữ liệu nào là biến.

PHP tự động liên kết một kiểu dữ liệu với biến, tùy thuộc vào giá trị của nó. Vì các kiểu dữ liệu không được đặt theo nghĩa chặt chẽ, bạn có thể thực hiện những việc như thêm một chuỗi vào một số nguyên mà không gây ra lỗi.

Trong PHP 7, khai báo kiểu đã được thêm vào. Điều này cung cấp tùy chọn để chỉ định loại dữ liệu dự kiến ​​khi khai báo hàm và bằng cách kích hoạt yêu cầu nghiêm ngặt, nó sẽ đưa ra "Lỗi nghiêm trọng" đối với kiểu không khớp.

Bạn sẽ tìm hiểu thêm về strictvà non-strictcác yêu cầu và khai báo kiểu dữ liệu trong chương Hàm PHP .

Phạm vi biến PHP
Trong PHP, các biến có thể được khai báo ở bất cứ đâu trong tập lệnh.

Phạm vi của một biến là một phần của tập lệnh trong đó biến có thể được tham chiếu / sử dụng.

PHP có ba phạm vi biến khác nhau:

địa phương
toàn cầu
tĩnh
Phạm vi toàn cầu và địa phương
Một biến được khai báo bên ngoài hàm có PHẠM VI TOÀN CẦU và chỉ có thể được truy cập bên ngoài hàm:

Thí dụ
Biến với phạm vi toàn cầu:

<?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 được khai báo trong một hàm có PHẠM VI ĐỊA PHƯƠNG và chỉ có thể được truy cập trong hàm đó:

Thí dụ
Biến với phạm vi địa phương:

<?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>";
?>

Bạn có thể có các biến cục bộ có cùng tên trong các hàm khác nhau, vì các biến cục bộ chỉ được nhận dạng bởi hàm mà chúng được khai báo.

PHP Từ khóa toàn cầu
Các globaltừ khóa được sử dụng để truy cập vào một biến toàn cầu từ bên trong một hàm.

Để làm điều này, sử dụng globaltừ khóa trước các biến (bên trong hàm):

Thí dụ
<?php
$x = 5;
$y = 10;

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

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

PHP cũng lưu trữ tất cả các biến toàn cục trong một mảng được gọi là . Việc giữ tên của biến. Mảng này cũng có thể truy cập từ bên trong các hàm và có thể được sử dụng để cập nhật các biến toàn cục trực tiếp.$GLOBALS[index]index

Ví dụ trên có thể được viết lại như thế này:

Thí dụ
<?php
$x = 5;
$y = 10;

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

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

PHP Từ khóa tĩnh
Thông thường, khi một chức năng được hoàn thành / thực thi, tất cả các biến của nó sẽ bị xóa. Tuy nhiên, đôi khi chúng tôi muốn một biến cục bộ KHÔNG bị xóa. Chúng tôi cần nó cho một công việc hơn nữa.

Để làm điều này, sử dụng statictừ khóa khi bạn khai báo biến đầu tiên:

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

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


Sau đó, mỗi lần hàm được gọi, biến đó sẽ vẫn có thông tin chứa trong lần cuối cùng hàm được gọi.

Lưu ý: Biến vẫn là cục bộ của hàm.