Cách sử dụng biến (variable) và hằng (constant) trong PHP

Đây là bài 6/53 bài của series môn học Lập trình Web PHP

Bài này sẽ giới thiệu biến (variable) và hằng (constant) trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

1. Tạo biến (variable) trong PHP

Một biến (variable) là nơi lưu trữ dữ liệu. Khi tạo ra một biến, PHP sẽ lưu trữ tên biến tương ứng với giá trị của biến. Bộ nhớ của biến sẽ được Zend Engine quản lý nên chúng ta không cần quan tâm về vùng nhớ lưu trữ giá trị của biến.

Trong PHP, một biến bắt đầu với ký tự $ và theo sau là tên biến.

<?php
$domainame = "gochocit.com";
$x = 1;
$y = 5;
?>

Khi các câu lệnh ở trên được thực thi, biến $domainame sẽ giữ giá trị gochocit.com, biến $x sẽ giữ giá trị 1, biến $y sẽ giữ giá trị 5. Trong PHP, một biến được tạo ra ngay lúc gán giá trị cho biến, không cần khai báo tên biến rồi sau đó mới gán giá trị cho biến. Cách đặt tên biến trong PHP tuân theo quy tắc đặt tên định danh (identifier).

Trong PHP, khi tạo ra một biến thì không cần chỉ rõ kiểu dữ liệu của biến. PHP sẽ tự động xác định kiểu dữ liệu của biến dựa vào giá trị của biến đó.

Câu lệnh echo thường được sử dụng để xuất giá trị của biến trong PHP.

<?php
$domainame = "Gochocit.com";
$x = 1;
$y = 5;
echo "I love $domainame!";
echo "<br>";
echo "I love " . $domainame . "!";
echo "<br>";
echo $x + $y;
?>
Kết quả
I love Gochocit.com!
I love Gochocit.com!
6

2. Phạm vi (scope) của biến trong PHP

Biến có thể được tạo ra ở bất cứ đâu trong PHP script. Phạm vi (scope) của biến thể hiện phạm vi mà biến có thể được sử dụng.

Trong PHP, có 3 loại biến với 3 phạm vi sử dụng khác nhau:

    • Biến local
    • Biến global
    • Biến static

2.1. Biến global (global variable)

Biến global được tạo ra bên ngoài một hàm (function). Biến global chỉ được sử dụng bên ngoài hàm (function).

<?php
// global variable
$domainame = "gochocit.com";
function welcome() {
  // using $domainname inside this function will generate an error
  echo "<p>Variable x inside function is: $domainname</p>";
}
welcome();
echo "<p>Variable domainname outside function is: $domainame</p>";
?>
Kết quả
Warning: Undefined variable $domainname in C:\xampp\htdocs\gochocit\index.php on line 6

Variable x inside function is:
Variable domainname outside function is: gochocit.com

2.2. Biến local (local variable)

Biến local được tạo ra bên trong một hàm (function). Biến local chỉ được sử dụng bên trong hàm (function).

<?php
function welcome() {
    // local variable
    $domainame = "gochocit.com";
    echo "<p>Variable domainame inside function is: $domainame</p>";
}
welcome();
// using domainame outside the function will generate an error
echo "<p>Variable domainname outside function is: $domainame</p>";
?>
Kết quả
Variable domainame inside function is: gochocit.com

Warning: Undefined variable $domainame in C:\xampp\htdocs\gochocit\index.php on line 9

Variable domainname outside function is:

Lưu ý: Các biến local trong các hàm (function) khác nhau thì có thể có tên giống nhau. Bởi vì biến local chỉ có phạm vi sử dụng bên trong hàm chứa nó.

Sử dụng biến global trong một hàm (function)

Chúng ta có thể sử dụng từ khóa global để truy cập biến global trong một hàm.

<?php
// global variables
$x = 1;
$y = 5;
function welcome() {
    // access globale variables
    // with global keyword
    global $x, $y;
    $y = $x + $y;
}
welcome();
// output 6
echo $y;
?>
Kết quả
6

PHP cũng lưu trữ các biến global trong một mảng (array) là $GLOBALS['name']. Trong đó, name là tên của biến global.

<?php
// global variables
$x = 1;
$y = 5;
function welcome() {
    // access globale variables
    // with global keyword
    $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
welcome();
// output 6
echo $y;
?>
Kết quả
6

2.3. Biến static (static variable)

Thông thường, khi một hàm được gọi xong thì tất cả các biến local trong hàm đó sẽ bị xóa. Trong một số trường hợp, chúng ta không muốn biến local bị xóa thì chúng ta có thể sử dụng từ khóa static để khai báo một biến static.

<?php
function welcome() {
    // static variable
    static $x = 0;
    echo $x."<br>";
    $x++;
}
welcome();
welcome();
welcome();
?>
Kết quả
0
1
2

Mỗi lần hàm welcome() được gọi, biến $x vẫn còn lưu trữ giá trị từ lần gọi trước đó và giá trị được cập nhật ở mỗi lần gọi hàm.

Lưu ý: Biến static vẫn là biến cục bộ (local variable) của hàm (function).

3. Hằng (constant) trong PHP

Hằng (constant) cũng giống như biến (variable) nhưng giá trị của constant thì sẽ không thể thay đổi một khi đã gán giá trị cho nó. Trong PHP, chúng ta sử dụng hàm define() để tạo ra một constant.

define(string $constant_name, mixed $value, bool $case_insensitive = false): bool 

Trong đó,

  • $constant_name là tên của hằng (constant)
  • $value là giá trị của hằng (constant)
  • $case-insensitive: chỉ định xem tên hằng (constant) có phân biệt chữ hoa, chữ thường hay không. Mặc định là false, có phân biệt hoa thường. Từ PHP 8.0.0, chỉ giá trị false được chấp chận, nếu truyền vào giá trị true sẽ nhận được warning.
<?php
// default case-insensitive is false
define("DOMAINNAME", "gochocit.com");
echo DOMAINNAME;
// case-insensitive is true
define("FACEBOOKPAGE", "https://www.facebook.com/gochocit", true);
echo FACEBOOKPAGE;
?>
Kết quả
gochocit.com
Warning: define(): Argument #3 ($case_insensitive) is ignored since declaration of case-insensitive constants is no longer supported in C:\xampp\htdocs\gochocit\index.php on line 6
https://www.facebook.com/gochocit

Từ PHP 7, giá trị (value) của hằng (constant) có thể là mảng (array).

<?php
define("fruits", [
    "lemon",
    "orange",
    "strawberry"
  ]);
echo fruits[0];
?>
Kết quả
lemon

Một hằng (constant) khi được tạo ra thì có phạm vi (scope) sử dụng là global và có thể được sử dụng ở bất kỳ đâu trong PHP script.

<?php
define("DOMAINNAME", "gochocit.com");
function welcome() {
    echo DOMAINNAME;
}
welcome();
?>
Kết quả
gochocit.com

Lưu ý: Hằng (constant) có thể được truy cập trong các hàm (function).

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Sự khác nhau giữa echo và print trong PHPCác kiểu dữ liệu (data type) trong PHP >>
Chia sẻ trên mạng xã hội:

Để lại một bình luận

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.