Tut php 003: khai báo và sử dụng biến trong PHP

Biến trong PHP cũng tương tự với biến trong những ngôn ngữ khác, chúng có tác dụng lưu trữ thông tin tạm thời.
Ví dụ:

<?php
$x=3;
$y=4;
$z=2*$x+3*$y;
echo $z;
?>

Biến không những có thể lưu trữ giá trị mà nó còn lưu trữ những expressions ví dụ: $z = 2*$x + 3*$y

1. Một số quy tắc đặt tên biến trong PHP

  • Biến phải bắt đầu bằng dấu “$”, theo sau nó là tên của biến.
  • Biến phải bắt đầu bằng 1 ký tự hoặc dấu gạch dưới “_”.
  • Tên biến không được bắt đầu bằng 1 ký tự số.
  • Tên biến chỉ có thể chứa những ký tự từ A->Z, a->z, số từ 0->9 và dấu gạch dưới.
  • Tên biến có phân biệt chữ hoa và chữ thường.

2. Khai báo biến trong PHP

Trong PHP thì không cần thiết phải khai báo biến trước khi sử dụng, ta thường khai báo nó và gán cho nó ngay một giá trị mặc định.
Ví dụ:

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

Chú ý: khi gán một xâu cho 1 biến chúng ta cần sử dụng 2 dấu “.
Qua ví dụ trên thì ta thấy rằng khi khai báo biến trong PHP không cần phải khao báo kiểu giá trị cho nó vì nó sẽ biết tự convert sang kiểu dữ liệu phù hợp.
Trong một số ngôn ngữ như C, C++, Java thì bắt buộc phải khai báo tên và kiểu dữ liệu cho biến trước khi sử dụng.

3. Phạm vi sử dụng của biến trong PHP

Trong PHP biến được khai báo ở bất cứ đâu trong file, tuy nhiên thì không phải sử dụng được ở bất cứ đâu.
PHP có cung cấp cho ta 3 scopes cho biến:

  • local
  • global
  • static

* Local và Global

– Biến khai báo ở ngoài hàm có scope là Global và chỉ có thể sử dụng ở bên ngoài hàm.
– Biến khai báo trong hàm có scope là Local và chỉ có thể sử dụng ở bên trong hàm.
Ví dụ sau sẽ cho ta thấy phạm vi sử dụng của biến global và biến local.

<?php
$x=10; // global scope
function blankaTest()
{
$y=22; // local scope
echo "<p>Test bien ben trong ham:<p>";
echo "Gia tri cua x la: $x";
echo "<br>";
echo "Gia tri cua y la: $y";
}

blankaTest();

echo "<p>Test bien ben ngoai ham:<p>";
echo "Gia tri cua x la: $x";
echo "<br>";
echo "Gia tri cua y la: $y";
?>

Trong ví dụ trên ta có hai biến $x, $y và một hàm blankaTest():
+ $x là biến global vì nó được khai báo ở bên ngoài hàm.
+ $y là biến local vì nó được khai báo ở bên trong hàm blankaTest().
Trong hàm blankaTest() chúng ta in ra giá trị của 2 biến $x và $y nhưng chỉ có biến $y được in ra do nó được khai báo bên trong hàm còn biến $x thì không thể in ra vì nó là biến global và không sử dụng được ở bên trong hàm.
Khi test biến bên ngoài hàm ta cũng in ra giá trị của hai biến $x và $y nhưng chỉ có biến $x được in ra mà biến $y thì không. Lý do là $y là biến local được khai báo trong hàm blankaTest() và khi ra ngoài hàm thì nó không còn có tác dụng gì nữa và như thế thì chúng ta không thể dùng được.
Chú ý: Bạn có thể khai báo nhiều biến local cùng tên trong nhứng hàm khác nhau bởi vì biến local chỉ được nhận ra ở bên trong hàm nó được khai báo mà thôi.

* Từ khóa “global” trong PHP

Từ khóa global được sử dụng để truy cập tới biến global từ bên trong hàm.
Ví dụ:

<?php
$x=5;
$y=10;

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

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

PHP lưu trữ tất cả biến global trong mảng $GLOBALS[index] với “index” là tên của biến. Mảng này giúp cho ở bên trong hàm có thể truy cập tới và update giá trị cho biến global.
Ví dụ:

<?php
$x=5;
$y=10;

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

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

* Từ khóa “static” trong PHP

Thông thường khi một hàm được thực hiện xong, tất cả các biến của nó sẽ bị xóa hết. Tuy nhiên thỉnh thoảng có trường hợp chúng ta không muốn xóa nó đi và để nó lại sử dụng cho mục đích khác. Để làm được điều đó chúng ta sử dụng từ khóa “static” khi biến được khai báo lần đầu tiên.
Ví dụ:

<?php

function blankaTest()
{
static $x=0;
echo $x;
$x++;
}

blankaTest();
blankaTest();
blankaTest();

?>

Cứ mỗi lần hàm myTest được gọi giá trị của biến vẫn được giữ như lần cuối cùng hàm được gọi.

* Kết luận: qua bài học này chúng ta đã có một cái nhìn tổng quát hơn về cách khai báo và sử dụng biến trong PHP, phạm vi sử dụng và cách dùng chúng làm sao cho hiệu quả. Nếu các bạn có bất cứ thắc mắc nào liên quan đến phần này có thể đặt câu hỏi cho chúng tôi qua forum forum.basetut.com.

Nguồn tham khảo: w3school.com

Comments
  1. 5 years ago
  2. 3 years ago

Leave a Reply

Your email address will not be published. Required fields are marked *