1. Giới thiệu về biến trong ngôn ngữ PHP

Hàng ngày chúng ta đều phải ăn cơm hay uống nước và việc ăn mấy bát cơm hay uống bao nhiêu nước chúng ta đều có thể thay đổi và kiểm soát được. Biến trong PHP cũng như vậy, ta có thể thay đổi biến cho phù hợp. Ta cũng có thể khai báo biến ở bất kỳ đâu .

2. Khai báo biến trong PHP

Không như một số ngôn ngữ lập trình khác, PHP không có lệnh để chúng ta khai báo một biến mà biến đó sẽ được tạo ngay sau khi chúng ta chỉ định cho nó một giá trị đầu tiên. Muốn khai báo một biến trong PHP thì đứng trước nó luôn là ký tự $ (dola). Sau đó sẽ là giá trị mà ta gán vào cho biến và trong PHP sẽ sử dụng dấu bằng ( = ) để gán giá trị cho biến.

<?php 
    $laptrinhtudau = "trang web day lap trinh online";
?>

Có một số lưu ý cho chúng ta khi khai báo biến:

  • Tên biến chỉ được bắt đầu bằng các chữ cái hoặc dấu gạch dưới(_) không được bắt đầu bằng số các ký tự đặc biệt khác.
  • Trong PHP thì chúng ta phân biệt chữ hoa chữ thường ở biến nhé. VD: $laptrinhtudau khác với $LAPtrinhtudau.
  • Khi ta gán giá trị văn bản cho một biến thì ta hãy đặt nó trong dấu ngoặc kép.
  • Về việc chúng ta có thể thay đổi biến, các bạn có thể tham khảo đoạn code sau.
<?php 
    $laptrinhtudau = "hello moi nguoi";
    echo $laptrinhtudau;
    echo "<br/>";
    $laptrinhtudau = "trang web day lap trinh online";
    echo $laptrinhtudau;
?>

3. Cách đưa dữ liệu ra màn hình

Trong PHP việc đưa dữ liệu ra màn hình cũng khá là đơn giản. Chúng ta sẽ có hai cách cơ bản để xuất dữ liệu ra màn hình là: echo và print. Hai cách này gần như là giống nhau và không có sự khác biệt gì nhiều. Tuy nhiên cũng có một chút sự khác biệt ở đây: echo sẽ không có giá trị trả về cho chúng ta, còn print thì có giá trị trả về là 1 nên ta có thể sử dụng trong các biểu thức. Echo có thể nhận nhiều tham số trong khi print có thể lấy một đối số. Và echo nhanh hơn print một chút.

Ví dụ:

<?php
$txt1 = "Học online tại";
$txt2 = "laptrinhtudau.com";
$x = 5;
$y = 4;
//dùng echo
echo "<h2>" . $txt1 . "</h2>";
echo "Study PHP at " . $txt2 . "<br>";
echo $x + $y;
//dùng print
print "<h2>" . $txt1 . "</h2>";
print "Study PHP at " . $txt2 . "<br>";
print $x + $y;
?>

4. Phạm vi của biến trong PHP

Như mình đã nói ở trên thì các biến có thể khai báo ở bất kỳ đâu trong script. Phạm vi của biến đó là một phần của script đó mà chính biến đó có thể sẽ được sử dụng hoặc là tham chiếu.

4.1. Phạm vi của biến toàn cục

Như ta có thể hiểu đơn giản toàn cục là bên ngoài và bao quanh thứ gì đó. Và biến toàn cục cũng như vậy, biến đó sẽ được khai báo bên ngoài hàm (chúng ta sẽ được tìm hiểu kỹ hơn về hàm ở các bài sau) và có thể sẽ chỉ truy cập được bên ngoài của một hàm. Các bạn có thể xem kỹ hơn ở ví dụ này!

<?php 
    $x = 5; //phạm vi biến toàn cục
    function myTest(){
        //sử dụng x bên trong hàm sẽ phát sinh lỗi
        echo "<p>Biến x bên trong hàm là: $x </p>";
    }
    myTest();
    echo "<p>Biến x bên ngoài hàm là: $x </p>";
?>

Ở ví dụ này thì ta có thể hiểu myTest() là hàm và $x = 5 chính là việc khai báo biến. Ta có thể hiểu nôm na và đơn giản là nếu khai báo biến trước hàm (chính là ở ngoài biến) thì có nghĩa biến có phạm vi toàn cục.

4.2. Phạm vi của biến cục bộ

Và cũng như biến toàn cục, cục bộ ta có thể hiểu một cách đơn giản nhất là biến đó khai báo nằm bên trong hàm và biến này sẽ chỉ có thể được truy cập ở bên trong hàm này.

<?php 
    function myTest(){
        $x = 5; //phạm vi biến cục 
        echo "<p>Biến x bên trong hàm là: $x </p>";
    }
    myTest();
    echo "<p>Biến x bên ngoài hàm là: $x </p>";
// sử dụng x ngoài hàm sẽ phát sinh lỗi
?>

Và cũng qua ví dụ này ta cũng có thể hiểu một cách đơn giản nhất là việc khai báo biến $x = 5 sẽ diễn ra sau hàm myTest(). Đó chính là phạm vi biến cục bộ.

4.3. Từ khóa Global và Static trong PHP

Từ khóa Global được sử dụng để truy xuất một biến toàn cục từ trong một hàm. PHP có thể lưu trữ dữ liệu tất cả các biến toàn cục trong một mảng được gọi. Mảng này có thể truy cập dữ liệu từ bên trong các hàm và có thể sử dụng để cập nhật trực tiếp biến toàn cục trong một mảng và được gọi qua là $GLOBALS[index].index là tên của các biến. Ta có thể viết lại ví dụ như sau:

<?php
$x = 75;
$y = 25;
function myTest() {
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $z;
?>

Thông thường trong một hàm khi hoàn thành hoặc kết thúc chạy , tất cả các biến sẽ đều bị xóa. Tuy nhiên có nhiều lúc chúng ta sẽ muốn các biến cục bộ không bị xóa để phục vụ cho một công việc nào đó sau này. Để có thể làm được điều này thì chúng ta sẽ sử dụng từ khóa Static trước khai báo biến. Mỗi lần hàm này được gọi , biến đó vẫn là biến cục bộ và biến vẫn sẽ lấy được thông tin lưu trữ từ những lần gọi trước.

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