Hướng dẫn what is variable and scope of variable in php? - biến và phạm vi của biến trong php là gì?

Phạm vi của một biến được định nghĩa là phạm vi của nó trong chương trình theo đó nó có thể được truy cập. Nói cách khác, "phạm vi của một biến là phần của chương trình được xác định và có thể được truy cập."

Show

PHP có ba loại phạm vi biến đổi:

  1. Biến cục bộ
  2. Biến toàn cầu
  3. Biến tĩnh

Biến cục bộ

Biến toàn cầu

Biến tĩnh

Các biến được khai báo trong một hàm được gọi là các biến cục bộ cho hàm đó. Các biến cục bộ này chỉ có phạm vi của chúng trong hàm cụ thể mà chúng được khai báo. Điều này có nghĩa là các biến này không thể được truy cập bên ngoài hàm, vì chúng có phạm vi cục bộ.

Output:

Local variable declared inside the function is: 45

Một khai báo biến bên ngoài hàm có cùng tên khác hoàn toàn so với biến được khai báo bên trong hàm. Hãy hiểu các biến cục bộ với sự trợ giúp của một ví dụ:

Output:

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28

Biến toàn cầu

Biến tĩnh

Các biến được khai báo trong một hàm được gọi là các biến cục bộ cho hàm đó. Các biến cục bộ này chỉ có phạm vi của chúng trong hàm cụ thể mà chúng được khai báo. Điều này có nghĩa là các biến này không thể được truy cập bên ngoài hàm, vì chúng có phạm vi cục bộ.

Example:

Một khai báo biến bên ngoài hàm có cùng tên khác hoàn toàn so với biến được khai báo bên trong hàm. Hãy hiểu các biến cục bộ với sự trợ giúp của một ví dụ:

Output:

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma

Tệp: local_varable1.php

Example:

Tệp: local_varable2.php

Output:

Notice: Undefined variable: name in D:\xampp\htdocs\program\p3.php on line 6
Variable inside the function:

Các biến toàn cầu là các biến được khai báo bên ngoài hàm. Các biến này có thể được truy cập ở bất cứ đâu trong chương trình. Để truy cập biến toàn cầu trong một hàm, hãy sử dụng từ khóa toàn cầu trước biến. Tuy nhiên, các biến này có thể được truy cập trực tiếp hoặc sử dụng bên ngoài chức năng mà không có bất kỳ từ khóa nào. Do đó, không cần phải sử dụng bất kỳ từ khóa nào để truy cập một biến toàn cầu bên ngoài chức năng.

Hãy hiểu các biến toàn cầu với sự trợ giúp của một ví dụ:

Example:

Tệp: Global_Varable1.php

Output:

Sum of global variables is: 18

Lưu ý: Không sử dụng từ khóa toàn cầu, nếu bạn cố gắng truy cập một biến toàn cầu bên trong hàm, nó sẽ tạo ra một lỗi mà biến không được xác định.

Example:

Tệp: local_varable2.php

Output:

Các biến toàn cầu là các biến được khai báo bên ngoài hàm. Các biến này có thể được truy cập ở bất cứ đâu trong chương trình. Để truy cập biến toàn cầu trong một hàm, hãy sử dụng từ khóa toàn cầu trước biến. Tuy nhiên, các biến này có thể được truy cập trực tiếp hoặc sử dụng bên ngoài chức năng mà không có bất kỳ từ khóa nào. Do đó, không cần phải sử dụng bất kỳ từ khóa nào để truy cập một biến toàn cầu bên ngoài chức năng.

Biến tĩnh

Các biến được khai báo trong một hàm được gọi là các biến cục bộ cho hàm đó. Các biến cục bộ này chỉ có phạm vi của chúng trong hàm cụ thể mà chúng được khai báo. Điều này có nghĩa là các biến này không thể được truy cập bên ngoài hàm, vì chúng có phạm vi cục bộ.static variable.

Một khai báo biến bên ngoài hàm có cùng tên khác hoàn toàn so với biến được khai báo bên trong hàm. Hãy hiểu các biến cục bộ với sự trợ giúp của một ví dụ:

Example:

Tệp: local_varable1.php

Output:

Static: 4
Non-static: 7
Static: 5
Non-static: 7

Tệp: local_varable2.php


Bạn sẽ tìm hiểu về bốn phạm vi khác nhau với sự trợ giúp của các ví dụ: địa phương, bao quanh, toàn cầu và tích hợp. Các phạm vi này cùng nhau tạo thành cơ sở cho quy tắc LEGB được sử dụng bởi trình thông dịch Python khi làm việc với các biến.

$a 1;
include 
'b.inc';
?>

Phạm vi của một biến là bối cảnh trong đó nó được xác định. Đối với hầu hết các phần, tất cả các biến PHP chỉ có một phạm vi duy nhất. Phạm vi duy nhất này bao gồm và các tập tin cần thiết là tốt. Ví dụ:

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>

Ở đây $ một biến sẽ có sẵn trong tập lệnh B.INC đi kèm. Tuy nhiên, trong các chức năng do người dùng xác định, một phạm vi chức năng cục bộ được giới thiệu. Bất kỳ biến nào được sử dụng bên trong một hàm theo mặc định giới hạn trong phạm vi hàm cục bộ. Ví dụ:

Tập lệnh này sẽ không tạo ra bất kỳ đầu ra nào vì câu lệnh ECHO đề cập đến phiên bản cục bộ của biến $ A và nó chưa được gán giá trị trong phạm vi này. Bạn có thể nhận thấy rằng điều này hơi khác một chút so với ngôn ngữ C trong các biến toàn cầu trong C được tự động có sẵn cho các chức năng trừ khi cụ thể được ghi đè bởi một định nghĩa cục bộ. Điều này có thể gây ra một số vấn đề ở chỗ mọi người có thể vô tình thay đổi một biến toàn cầu. Trong các biến toàn cầu PHP phải được khai báo toàn cầu bên trong một hàm nếu chúng sẽ được sử dụng trong hàm đó.

Từ khóa

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
0

Đầu tiên, một ví dụ sử dụng

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
0:

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
3

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
4

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
5

Ví dụ #1 sử dụng

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
0

Tập lệnh trên sẽ xuất ra

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
6. Bằng cách tuyên bố $ a và $ b toàn cầu trong hàm, tất cả các tham chiếu đến một trong hai biến sẽ đề cập đến phiên bản toàn cầu. Không có giới hạn về số lượng biến toàn cầu có thể được thao tác bởi một hàm.

Cách thứ hai để truy cập các biến từ phạm vi toàn cầu là sử dụng mảng $ Globals được xác định bằng PHP đặc biệt. Ví dụ trước có thể được viết lại như:

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
3

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
4

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
9

Ví dụ #2 sử dụng $ globals thay vì toàn cầu

Mảng $ Globals là một mảng kết hợp với tên của biến toàn cầu là khóa và nội dung của biến đó là giá trị của phần tử mảng. Lưu ý cách $ Globals tồn tại trong bất kỳ phạm vi nào, điều này là do $ Globals là một siêu thị. Đây là một ví dụ chứng minh sức mạnh của Superglobals:

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma
0

Ví dụ #3 Ví dụ chứng minh Superglobals và Phạm vi:

Ghi chú:

Sử dụng từ khóa Web development language: PHP Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28 0 bên ngoài chức năng không phải là lỗi. Nó có thể được sử dụng nếu tệp được bao gồm từ bên trong một hàm.

Sử dụng các biến

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma
2

Một tính năng quan trọng khác của phạm vi biến là biến tĩnh. Một biến tĩnh chỉ tồn tại trong phạm vi hàm cục bộ, nhưng nó không mất giá trị khi thực hiện chương trình rời khỏi phạm vi này. Xem xét ví dụ sau:

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma
3

Ví dụ #4 Ví dụ Thể hiện nhu cầu về các biến tĩnh

Ví dụ #5 Ví dụ sử dụng các biến tĩnh

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma
6

Bây giờ, $ A chỉ được khởi tạo trong cuộc gọi đầu tiên của hàm và mỗi khi hàm

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma
7 được gọi là nó sẽ in giá trị của $ a và tăng nó.

Các biến tĩnh cũng cung cấp một cách để đối phó với các hàm đệ quy. Một hàm đệ quy là một hàm tự gọi. Phải cẩn thận khi viết một hàm đệ quy vì có thể làm cho nó tái phát vô thời hạn. Bạn phải chắc chắn rằng bạn có một cách đủ để chấm dứt đệ quy. Hàm đơn giản sau đây được tính vào 10, sử dụng số lượng tĩnh $ để biết khi nào nên dừng:

Ví dụ #6 biến tĩnh với các hàm đệ quy

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma
8

Các biến tĩnh có thể được gán các giá trị là kết quả của các biểu thức không đổi, nhưng các biểu thức động, chẳng hạn như các lệnh gọi hàm, sẽ gây ra lỗi phân tích cú pháp.

Ví dụ #7 Khai báo các biến tĩnh

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma
9

Kể từ Php 8.1.0, khi một phương thức sử dụng các biến tĩnh được kế thừa (nhưng không được ghi đè), phương thức kế thừa giờ đây sẽ chia sẻ các biến tĩnh với phương thức mẹ. Điều này có nghĩa là các biến tĩnh trong các phương thức bây giờ hoạt động giống như các thuộc tính tĩnh.

Ví dụ #8 Sử dụng các biến tĩnh trong các phương thức được kế thừa

Notice: Undefined variable: name in D:\xampp\htdocs\program\p3.php on line 6
Variable inside the function:
0

Ghi chú::

Khai báo tĩnh được giải quyết trong thời gian biên dịch.

Tài liệu tham khảo với các biến Web development language: PHP Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28 0 và Variable inside the function: Sanaya Sharma Variable outside the function: Sanaya Sharma 2

PHP thực hiện công cụ sửa đổi tĩnh và toàn cầu cho các biến về mặt tham chiếu. Ví dụ, một biến toàn cầu thực sự được nhập trong phạm vi hàm với câu lệnh

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
0 thực sự tạo ra một tham chiếu đến biến toàn cầu. Điều này có thể dẫn đến hành vi bất ngờ mà ví dụ sau đây:

Notice: Undefined variable: name in D:\xampp\htdocs\program\p3.php on line 6
Variable inside the function:
4

Web development language: PHP
Notice: Undefined variable: lang in D:\xampp\htdocs\program\p3.php on line 28
4

Notice: Undefined variable: name in D:\xampp\htdocs\program\p3.php on line 6
Variable inside the function:
6

Ví dụ trên sẽ xuất ra:

NULL
object(stdClass)#1 (0) {
}

Một hành vi tương tự áp dụng cho câu lệnh

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma
2. Các tài liệu tham khảo không được lưu trữ một cách thống trị:

Notice: Undefined variable: name in D:\xampp\htdocs\program\p3.php on line 6
Variable inside the function:
8

Notice: Undefined variable: name in D:\xampp\htdocs\program\p3.php on line 6
Variable inside the function:
9

Sum of global variables is: 18
0

Ví dụ trên sẽ xuất ra:

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}

Một hành vi tương tự áp dụng cho câu lệnh

Variable inside the function: Sanaya Sharma
Variable outside the function: Sanaya Sharma
2. Các tài liệu tham khảo không được lưu trữ một cách thống trị:

Ví dụ này chứng minh rằng khi gán một tham chiếu đến một biến tĩnh, nó không được nhớ khi bạn gọi hàm

Sum of global variables is: 18
1 lần thứ hai.

Dodothedreamer tại Gmail Dot Com ¶

Sum of global variables is: 18
2

11 năm trước

Warheog tại Warhog Dot Net

Sum of global variables is: 18
3

Sum of global variables is: 18
4

Sum of global variables is: 18
5

Sum of global variables is: 18
6

16 năm trước

Michael Bailey (Jinxidoru tại BYU Dot Net) ¶

Sum of global variables is: 18
7

Sum of global variables is: 18
8

Sum of global variables is: 18
9

Static: 4
Non-static: 7
Static: 5
Non-static: 7
0

Static: 4
Non-static: 7
Static: 5
Non-static: 7
1

18 năm trước

Andrew tại Planetubh Dot Com ¶

Static: 4
Non-static: 7
Static: 5
Non-static: 7
2

Static: 4
Non-static: 7
Static: 5
Non-static: 7
3

Static: 4
Non-static: 7
Static: 5
Non-static: 7
4

Static: 4
Non-static: 7
Static: 5
Non-static: 7
5

Static: 4
Non-static: 7
Static: 5
Non-static: 7
6

Static: 4
Non-static: 7
Static: 5
Non-static: 7
7

Static: 4
Non-static: 7
Static: 5
Non-static: 7
8

Static: 4
Non-static: 7
Static: 5
Non-static: 7
9

NULL
object(stdClass)#1 (0) {
}
0

13 năm trước

Warheog tại Warhog Dot Net

NULL
object(stdClass)#1 (0) {
}
1

NULL
object(stdClass)#1 (0) {
}
2

NULL
object(stdClass)#1 (0) {
}
3

NULL
object(stdClass)#1 (0) {
}
0

16 năm trước

Michael Bailey (Jinxidoru tại BYU Dot Net) ¶

NULL
object(stdClass)#1 (0) {
}
5

NULL
object(stdClass)#1 (0) {
}
6

NULL
object(stdClass)#1 (0) {
}
7

NULL
object(stdClass)#1 (0) {
}
8

18 năm trước

Andrew tại Planetubh Dot Com ¶

NULL
object(stdClass)#1 (0) {
}
9

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
0

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
1

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
2

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
3

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
4

Static: 4
Non-static: 7
Static: 5
Non-static: 7
0

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
6

13 năm trước

Larax tại O2 dot pl ¶

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
7

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
8

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}
9

$a 1;
include 
'b.inc';
?>
0

NULL
object(stdClass)#1 (0) {
}
0

Gried tại Nospam Dot Nsys Dot của ¶

Andrew tại Planetubh Dot Com ¶

$a 1;
include 
'b.inc';
?>
2

$a 1;
include 
'b.inc';
?>
3

NULL
object(stdClass)#1 (0) {
}
0

13 năm trước

Michael Bailey (Jinxidoru tại BYU Dot Net) ¶

$a 1;
include 
'b.inc';
?>
5

$a 1;
include 
'b.inc';
?>
6

Sum of global variables is: 18
5

$a 1;
include 
'b.inc';
?>
8

18 năm trước

Michael Bailey (Jinxidoru tại BYU Dot Net) ¶

$a 1;
include 
'b.inc';
?>
9

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
0

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
1

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
2

18 năm trước

Andrew tại Planetubh Dot Com ¶

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
3

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
4

NULL
object(stdClass)#1 (0) {
}
0

13 năm trước

Larax tại O2 dot pl ¶

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
6

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
7

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
8

$a 1/* global scope */ function test()

    echo 
$a/* reference to local scope variable */ 
test();
?>
9

NULL
object(stdClass)#1 (0) {
}
0

Biến và phạm vi của biến là gì?

Phạm vi là một khu vực của chương trình và nói rộng rãi có ba vị trí, trong đó các biến có thể được khai báo: bên trong một hàm hoặc một khối được gọi là các biến cục bộ, trong định nghĩa của các tham số hàm được gọi là tham số chính thức. Bên ngoài tất cả các chức năng được gọi là biến toàn cầu.

Một biến trong PHP là gì?

Một biến có thể có một tên ngắn (như X và Y) hoặc một tên mô tả hơn (Age, Carname, Total_Volume).Quy tắc cho các biến PHP: Một biến bắt đầu với dấu $, theo sau là tên của biến.Một tên biến phải bắt đầu bằng một chữ cái hoặc ký tự dấu gạch dưới.Một tên biến không thể bắt đầu với một số.. Rules for PHP variables: A variable starts with the $ sign, followed by the name of the variable. A variable name must start with a letter or the underscore character. A variable name cannot start with a number.

Phạm vi của PHP là gì?

Phạm vi của một biến được định nghĩa là phạm vi của nó trong chương trình theo đó nó có thể được truy cập.Nói cách khác, "phạm vi của một biến là phần của chương trình được xác định và có thể được truy cập."PHP có ba loại phạm vi biến: biến cục bộ.

4 loại phạm vi biến là gì?

Bạn sẽ tìm hiểu về bốn phạm vi khác nhau với sự trợ giúp của các ví dụ: địa phương, bao quanh, toàn cầu và tích hợp.Các phạm vi này cùng nhau tạo thành cơ sở cho quy tắc LEGB được sử dụng bởi trình thông dịch Python khi làm việc với các biến.local, enclosing, global, and built-in. These scopes together form the basis for the LEGB rule used by the Python interpreter when working with variables.