Biến và Hằng, phạm vi Biến trong PHP

Bài viết sẽ giới thiệu về biến cách khai báo biến, hằng và phạm vi biến trong PHP

I. GIỚI THIỆU VỀ BIẾN

- Biến( variable) Trong Lập trình có thể hiểu nôm na là các giá trị có thể thay đổi được. 

- Để khai báo biến trong PHP thì nó cũng có một số nguyên tắc sau:

  • Biến phải được bắt đầu bằng ký tự $.
  • Tên biến phân biệt hoa thường nên $var khác với $Var
  • Tên biến phải được bắt đầu bằng các chữ cái hoặc dấu _ không được bắt đầu bằng số, và các ký tự khác ngoài _ 

VD:

$var = 'hello';

$_var = 'hello Việt Nam';

- Trong PHP chúng ta sử dụng dấu = để gán giá trị cho biến.

VD:

$var = 'hello 123';

II. PHẠM VI CỦA BIẾN 

- Các biến trong PHP có thể là một trong bốn loại phạm vi sau:

  • Biến cục bộ.
  • Tham số các hàm.
  •  Biến toàn cục.
  •  Biến static.

 

1) Biến cục bộ:

Một biến được khai báo trong một hàm thì được xem như là một biến cục bộ và nó chỉ được tham chiếu trong hàm đó. Bất kể việc gán giá trị bên ngoài hàm đều xem như là biến hoàn toàn khác với biến trong hàm đó. Chú ý khi thoát khỏi hàm mà biến cục bộ được khai báo, thì biến và giá trị của nó sẽ bị huỷ bỏ. Biến cục bộ có thuận lợi bởi nó loại bỏ những khả năng của các tác động không dự đoán được làm thay đổi kết quả từ các biến có thể truy cập toàn cục.

VD:

<?php 
    $x = 4;
    function assignx () {
        $x = 0;
        dd($x);
        //kết quả: 0
    }
    dd($x);
    //kết quả: 4
?>

2) Biến toàn cục:

Ngược lại với biến cục bộ, biến toàn cục có thể được truy cập từ bất cứ phần nào trong chương trình .Tuy nhiên, để có thể chỉnh sửa biến toàn cục bên trong 1 hàm thì nó phải được khai báo toàn cục sử dụng từ khoá GLOBAL ở phía trước.

VD:

<?php 
  $var = 15;
  function addit() {
    GLOBAL $var;
    $var++;
    dd($var);
    //kết quả: 16
  }
?>

Nếu bỏ dòng GLOBAL $var; thì kết quả sẽ bằng 1, bởi biến $var được xem như là biến cục bộ trong hàm addit( ).

VD:

<?php 
  $var = 15;
  function addit() {
    $var++;
    dd($var);
    //kết quả: 1
  }
?>

Một cách khác để chỉ định một biến là toàn cục, chúng ta có thể sử dụng mảng $GLOBALS trong hàm. Ví du, khai báo biến $var là toàn cục bằng cách sử dụng mảng này như sau :

<?php 
  $var = 15;
  function addit() {
    GLOBAL ["var"];
    $var++;
    dd($var);
    // kết quả: 16
  }
?>

3) Biến static:

-  Tương phản với các biến cục bộ của hàm là nó sẽ bị huỷ bỏ khi thoát khỏi hàm, thì biến static sẽ không mất giá trị của nó khi thoát khỏi hàm và vẫn giữ nguyên giá trị đó khi hàm được gọi lại lần nữa.

-  Bạn có thể khai báo một biến là static bằng cách dùng từ khoá STATIC đặt trước tên biến.

VD:

function test() {
    STATIC $count = 0;
    $count++;
    print $count;
    print "<br>";
}
test();
test();
test();
//kết quả: 
1
2
3

III. HẰNG 

-  Hằng bản chất là một loại biến nhưng không thể thay đổi giá trị được. Tuy rằng xét về bản chất là giống nhau nhưng cách khai báo thì hoàn toàn khác nhau.

Cú pháp khai báo hằng như sau:

define('tenHang', 'giaTri');

Trong đó:

  • define: là cú pháp mặc định để tạo hằng trong PHP.
  • tenHang: là tên của hằng các bạn muốn đặt.
  • giaTri: là giá trị của hằng các bạn vừa đặt tên.

VD: Mình tạo một hằng NAME có giá trị là Nguyen Van A

<?php
    define('NAME', Nguyen Van A');
    echo NAME;

    //kết quả: Nguyen Van A
?>
0