Phạm vi biến PHP

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

Phạm vi của một biến là một phần của script nơi biến có thể được tham chiếu / sử dụng.

PHP có ba phạm vi biến khác nhau:

  • địa phương
  • toàn cầu
  • tĩnh

Phạm vi toàn cầu và địa phương

Một biến được khai báo bên ngoài một hàm có PHẠM VI TOÀN CẦU và chỉ có thể được truy cập bên ngoài một hàm:

Thí dụ

Biến với phạm vi toàn cầu:

<?php
$x = 5// global scope

function myTest() {
// using x inside this function will generate an error
  echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo “<p>Variable x outside function is: $x</p>”;
?>

Một biến được khai báo trong một hàm có PHẠM VI ĐỊA PHƯƠNG và chỉ có thể được truy cập trong hàm đó:

Thí dụ

Biến với phạm vi cục bộ:

<?php
function myTest() {
$x = 5// local scope
  echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// using x outside the function will generate an error
echo “<p>Variable x outside function is: $x</p>”;
?>
Bạn có thể có các biến cục bộ trùng tên trong các hàm khác nhau, bởi vì các biến cục bộ chỉ được công nhận bởi hàm mà chúng được khai báo.

PHP Từ khóa toàn cầu

Các globaltừ khóa được sử dụng để truy cập vào một biến toàn cầu từ bên trong một hàm.

Để thực hiện việc này, hãy sử dụng globaltừ khóa trước các biến (bên trong hàm):

Thí dụ

<?php
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}

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

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

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

Thí dụ

<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS[‘y’] = $GLOBALS[‘x’] + $GLOBALS[‘y’];
}

myTest();
echo $y; // outputs 15

?>

PHP Từ khóa tĩnh

Thông thường, khi một hàm được hoàn thành / thực thi, tất cả các biến của nó sẽ bị xóa. Tuy nhiên, đôi khi chúng ta muốn một biến cục bộ KHÔNG bị xóa. Chúng tôi cần nó cho một công việc xa hơn.

Để thực hiện việc này, hãy sử dụng statictừ khóa khi bạn khai báo biến lần đầu tiên:

Thí dụ

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

Sau đó, mỗi lần hàm được gọi, biến đó sẽ vẫn có thông tin mà nó chứa từ lần cuối cùng hàm được gọi.

Lưu ý: Biến vẫn là cục bộ của hàm.

LEAVE A REPLY

Please enter your comment!
Please enter your name here