Bài 3: Sử dụng biến trong PHP

Biến trong PHP


Biến là “các container” hay “các kho hàng” cho lưu trữ thông tin.


Khai báo biến trong PHP

Trong PHP, mộ biết bắt đầu bởi dấu $, theo sau nó là tên của biến:

Ví dụ


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

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

Chú y: khi bạn khởi gán một giá trị text tới một biến, bạn cần đặt dấu nháy đôi bao quanh giá trị.

Chú ý: Không giống như các ngôn ngữ lập trình khác, PHP không có câu lệnh khai báo kiểu dữ liệu của biến. Nó được cấp phát ngay khi bạn khởi gán giá trị cho nó.

lamp Suy nghĩa về các biến như là các thùng chứa dữ liệu.

Các biến trong PHP

Mộ biến có thể có tên ngắn (giống như x và y) hoặc một tên có ý nghĩa  như age, car_name, total_volume.

Quy tắc đặt tên biến trong PHP:

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

Đầu ra các biến

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

Ví dụ sau đây sẽ hiển thị dữ liệu text được chứa trong một biến:

Ví dụ


<?php
$txt = "https://timoday.edu.vn";
echo "Tôi thích $txt!";
?>

Ví dụ sau sẽ đưa ra cùng kết quả như ví dụ trên:

Ví dụ


<?php
$txt = "https://timoday.edu.vn";
echo "Tôi thích " . $txt . "!";
?>

Ví dụ sau sẽ đưa ra kết quả tính tổng của hai biến:

Ví dụ


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

Chú ý: Bạn sẽ học nhiều hơn về câu lệnh echo và cách đưa dữ liệu ra màn hình ở bài kế tiếp.


PHP là một ngôn ngữ định kiểu lỏng lẻo

Trong ví dụ trên, chúng ta không cần nói cho PHP kiểu dữ liệu của biến.

PHP tự động chuyển đổi biến tới đúng kiểu dữ liệu, phụ thuộc vào giá trị gán cho nó.

Trọng các ngôn ngữ khác như C, C++ và Java, lập trình viên phải khai báo tên và kiểu dữ liệu của biến trước khi sử dụng nó.


Phạm vi các biến trong PHP

Trong PHP, các biến có thể khai báo bất kỳ đâu trong script.

Phạm vị của một biến là một phần của script mà biến đó có thể được tham chiếu hoặc được sử dụng

Phạm vi của biến trong PHP có ba loại:

  • Biến cục bộ (local)
  • Biến toàn cục (global)
  • Biến tĩnh (static)

Phạm vi của biến toàn cục và biến cục bộ

Một biến được khai báo bên ngoài của một hàm thì  có phạm vị toàn cục và có thể chỉ truy cập được bên ngoài của một hàm:

Ví dụ


<?php
$x = 5; //phạm vi 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>";
?>

Một biến được khai báo bên trong một hàm thì có phạm vi cục bộ và chỉ có thể được bị truy cập ở bên trong hàm này:

Ví dụ


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

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

Từ kháo global trong PHP

Từ khoá global được sử dụng để truy xuất một biến toàn cục từ trong một hàm.

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

Ví dụ


<?php
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}myTest();
echo $y; //xuất ra 15
?>

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

Ví dụ ở trên có thể viết lại như sau:

Ví dụ


<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}myTest();
echo $y; //xuất ra 15
?>


Từ khoá static trong PHP

Thông thường khi một hàm hoàn thành hoặc kết thúc chạy, tất cả các biến bị xoá. Tuy nhiên đôi khi chúng ta muốn các biến cục bộ không bị xoá để phục vụ cho một công việc nào đó.

Để làm điều này sử dụng từ khoá static trước khai báo biến:

Ví dụ


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

Mỗi lần hàm này được gọi, biến đó vẫn sẽ lấy được thông tin được lưu trữ từ những lần gọi trước.

Chú ý: Biến này vẫn là biến cục bộ của hàm.

Có thể bạn sẽ thích…

4 phản hồi

  1. newbie viết:

    hi.
    Ban đầu mình có 1 biến.
    Mình muốn 1 vòng lặp vô hạn với biến là biến sau khi thực hiện dòng lệnh. Cứ lặp đi lặp lại như vậy bằng cách nào vậy?

  2. Phan Chí Tài viết:

    cho e hỏi cách thay tên SV bằng code:
    ‘Hoang’ , ‘gioitinh’ => ‘Nam’ , ‘diem’ => array(9,6,5));
    $sinhvien[‘SV02’] = array(‘ten’ => ‘Hoa’ , ‘gioitinh’ => ‘Nu’ , ‘diem’ => array(5,8,6));
    echo “”;
    print_r($sinhvien);
    echo “”;
    ?>

    • Hưng Bao Đẹp Trai viết:

      ‘Hoa’ , ‘gioitinh’ => ‘Nu’ , ‘diem’ => array(5,8,6));
      print_r($sinhvien);
      $sinhvien[‘SV02’][‘ten’] = ‘Hung Dep Trai’;
      $sinhvien[‘SV02’][‘gioitinh’] = ‘Nam’;
      $sinhvien[‘SV02’][‘diem’] = 10;
      print_r($sinhvien);

Trả lời