PHP: Phạm Vi Của Biến | V1Study

Từ khóa global

Ta xét một ví dụ sử dụng từ khóa global như sau:

Ví dụ 1: Sử dụng global

<?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; ?>

Đoạn mã trên sẽ in ra 3. $a và $b là các biến global vì chúng được khai báo ngoài hàm, và chúng được sử dụng trong hàm Sum() bằng cách khai báo lại và đặt từ khóa global để trình dịch hiểu chúng là các biến toàn cục. Một hàm có quyền sử dụng bất kỳ biến global nào và với số lượng tùy ý.

Ở ví dụ dưới đây thể hiện một cách khác để sử dụng biến toàn cục, đó là sử dụng mảng $GLOBALS được định nghĩa sẵn trong PHP:

Ví dụ 2: Sử dụng $GLOBALS thay cho global

<?php $a = 1; $b = 2; function Sum() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Sum(); echo $b; ?>

Mảng $GLOBALS là mảng kết hợp với tên của biến toàn cục với giá trị mà biến toàn cục chứa, theo đó, mỗi biến toàn cục sẽ được hiểu là một phần tử của mảng này, với chỉ số của phần tử mảng chính là tên của biến toàn cục, còn giá trị của phần tử đó chính là giá trị của biến toàn cục. Lưu ý ta có thể sử dụng $GLOBALS ở bất kỳ đâu, đó là bởi vì nó là siêu biến toàn cục (superglobal). Dưới đây là một ví dụ demo về khả năng của siêu biến toàn cục:

Ví dụ 3: Demo khả năng của siêu biến toàn cục

<?php function test_global() { // Phần lớn các biến được định nghĩa không phải là "super" và yêu cầu // sử dụng 'global' để dùng được trong hàm. global $HTTP_POST_VARS; echo $HTTP_POST_VARS['name']; // Siêu biến toàn cục sử dụng được ở mọi nơi và không yêu cầu từ khóa // 'global'. Tuy nhiên, hiện nay thì siêu biến toàn cục dạng như // HTTP_POST_VARS không còn được khuyến khích sử dụng. echo $_POST['name']; } ?>

Lưu ý:

Không được sử dụng từ khóa global bên ngoài hàm, khi đó sẽ phát sinh lỗi. Tuy nhiên, ta có thể sử dụng điều này nếu nó nằm trong tập tin được gọi từ hàm.

Từ khóa » Khai Báo Biến Global Trong Php