[BÀI 9] PHẠM VI BIẾN TRONG PHP
Thông thường PHP coi các biến được sử dụng trong thân của hàm là biến cục bộ. Nghĩa là biến trong thân hàm không làm thay đổi giá trị của biến biến ở ngoài hàm đó. Muốn làm thay đổi giá trị của biến ngoài ta cần khai báo global trước biến đó trong thân hàm. Giá trị của một biến được thay đổi ...
Thông thường PHP coi các biến được sử dụng trong thân của hàm là biến cục bộ. Nghĩa là biến trong thân hàm không làm thay đổi giá trị của biến biến ở ngoài hàm đó. Muốn làm thay đổi giá trị của biến ngoài ta cần khai báo global trước biến đó trong thân hàm.
Giá trị của một biến được thay đổi sẽ phụ thuộc vào phạm vi sử dụng của nó. PHP có 3 loại phạm vi biến: biến cục bộ(Local), biến toàn cục(Global), biến tĩnh(Static).
Biến cục bộ
Được khởi tạo bên trong một hàm được coi là một phạm vi cục bộ(local). Bên ngoài hàm khi gọi biến đó ra thì sẽ không hiểu được và sẽ không đưa ra kết quả .
Ví dụ:
Khai báo giá trị một biến và hiển thị giá trị ra màn hình bằng hàm tự định nghĩa hienthi().
1 2 3 4 5 6 7 8 9 |
<?php function hienthi(){ $x = 10; echo "Giá trị biến x trong hàm là : $x"; } hienthi(); //Sử dụng biến x ngoài hàm sẽ báo lỗi echo "Giá trị biến x ngoài hàm là: $x"; ?> |
Biến toàn cục
Ngược lại với biến cục bộ, biến được khai báo ngoài hàm được coi là toàn cục(global).
Ví dụ:
1 2 3 4 5 6 7 8 9 |
<?php $x =10; function hienthi(){ //Sử dụng x bên trong hàm sẽ báo lỗi echo "Giá trị biến x trong hàm là: $x"; } hienthi(); ?> |
Để sử dụng được biến toàn cục(global) trong hàm, PHP hỗ trợ cho chúng ta từ khóa global để truy cập và sử dụng biến toàn cục.
Ví dụ:
1 2 3 4 5 6 7 8 9 |
<?php $x = 10;$y=20; function sum(){ global $x,$y; $y = $x+$y; } sum(); echo $y; ?> |
Biến tĩnh
Khi một hàm được hoàn thành hoặc thực thi xong nhiệm vụ của mình, tất cả các biến của nó sẽ hủy ngay khi hàm kết thúc. Bạn muốn giữ nguyên giá trị của một biến mỗi khi hàm thực thi xong. PHP hỗ trợ từ khóa static, đặt trước tên biến để giữ nguyên giá trị khi thoát khỏi hàm.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 |
<?php function test(){ static $x=0; echo $x; //hiển thị giá trị của biến x $x++; //tăng giá trị của biến x khi mỗi lần gọi hàm echo " <pre>"; } test(); test(); test(); ?> |
Kết quả hiện thị: 0 1 2
- Các tin bài về lập trình PHP.
- Tham khảo các khóa học của DevPro tại đây !!!