Hướng dẫn php global function - hàm toàn cầu php
Show
Nội dung chính
Trong bài học này, chúng ta sẽ tìm hiểu về khái niệm biến siêu toàn cục trong PHP. Một vài biến được định nghĩa sẳn trong PHP là “superglobals”, nghĩa là chúng luôn có thể truy cập, bất chấp phạm vi và bạn có thể truy cập chúng từ bên bất kỳ hàm, class hoặc file.
Video Biến siêu toàn cục trong PHPHướng dẫn chi tiếtTừ khóa global Các bạn cần hosting PHP - WordPress nhanh, rẻ và dễ sử dụng có thể chọn Azdigi nhé. Link đăng ký: NHẬN NGAY ƯU ĐÃI Nếu các bạn đăng ký hosting từ link quảng cáo, mình sẽ có một ít tiền để duy trì và "chai ni". Ví dụ 1: Sử dụng global $GLOBALSVí dụ 2: Sử dụng $GLOBALS thay cho global Ví dụ 3: Demo khả năng của siêu biến toàn cụcSử dụng biến static Ví dụ 4: demo sự cần thiết của biến static Ví dụ 5: sử dụng biến tĩnh Hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé. Link đăng ký: NHẬN NGAY ƯU ĐÃI Nếu các bạn mua hosting từ link trên, mình sẽ có một ít tiền để duy trì. Cảm ơn $_SERVERTừ khóa globalVí dụ 1: Sử dụng global Ví dụ 2: Sử dụng $GLOBALS thay cho global Ví dụ 1: Sử dụng globalVí dụ 2: Sử dụng $GLOBALS thay cho global Ví dụ 3: Demo khả năng của siêu biến toàn cục
Ví dụ 2: Sử dụng $GLOBALS thay cho globalVí dụ 3: Demo khả năng của siêu biến toàn cục Sử dụng biến static Ví dụ 4: demo sự cần thiết của biến static Ví dụ 5: sử dụng biến tĩnh Ví dụ 6: Biến tĩnh với hàm đệ quy Ví dụ 7: Khai báo biến tĩnh Tham chiếu với các biến global và static Trong bài học này, chúng ta sẽ tìm hiểu về khái niệm biến siêu toàn cục trong PHP. Một vài biến được định nghĩa sẳn trong PHP là “superglobals”, nghĩa là chúng luôn có thể truy cập, bất chấp phạm vi và bạn có thể truy cập chúng từ bên bất kỳ hàm, class hoặc file. Vài nét về HTTPDownload $_SERVER là biến siêu toàn cục trong PHPcomment bên dưới, qua email, hoặc nhắn tin qua Fanpage Góc làm web. Một số thành phần trong $_SERVER "Thăm ngàn, kẹp ngần nhưng vẫn không đủ chai ni (trả nợ)" nên dành vài dòng cho QUẢNG CÁO Các bạn cần hosting PHP - WordPress nhanh, rẻ và dễ sử dụng có thể chọn Azdigi nhé. Link đăng ký: NHẬN NGAY ƯU ĐÃI Nếu các bạn đăng ký hosting từ link quảng cáo, mình sẽ có một ít tiền để duy trì và "chai ni".
Các biến superglobal trong PHP là: $GLOBALS, $_SERVER, $_REQUEST, $_POST, $_GET, $_FILES, $_COOKIE, $_SESSION
Ở đoạn mã trên thì ta không thể sử dụng được biến $a trong hàm test() như vậy, lúc này biến $a trong hàm test() lại được hiểu là biến cục bộ của chính hàm test() đó. Để khắc phục điều này thì ta cần phải sử dụng đến từ khóa global. Từ khóa globalTa xét một ví dụ sử dụng từ khóa global như sau: Ví dụ 1: Sử dụng global
Sum() Đ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
Sum() 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
$a = 1; /* phạm vi toàn cục */ 2
Sử dụng biến staticMột đặc tính khác của phạm vi biến là biến static. Biến tĩnh chỉ dùng được trong hàm, tuy nhiên thì giá trị của nó không bị mất đi sau khi hàm được thực thi xong. Xét ví dụ sau: Ví dụ 4: demo sự cần thiết của biến static
Ở hàm trên thì câu lệnh $a++; tỏ ra không có tác dụng mỗi khi hàm được gọi, bởi vì mỗi khi được gọi thì giá trị của biến $a lại được đặt thành 0. Để khắc phục điều này thì ta chỉ cần khai báo biến $a là biến tĩnh:$a++; tỏ ra không có tác dụng mỗi khi hàm được gọi, bởi vì mỗi khi được gọi thì giá trị của biến $a lại được đặt thành 0. Để khắc phục điều này thì ta chỉ cần khai báo biến $a là biến tĩnh: Ví dụ 5: sử dụng biến tĩnh
Ở ví dụ trên, giá trị của biến $a vẫn được giữ lại, vì thế mỗi khi gọi hàm test() thì giá trị của $a lại tăng một đơn vị. Biến tĩnh cũng cung cấp một cách để đối phó với hàm đệ quy. Hàm đệ quy là hàm có đặc điểm nó gọi đến chính nó. Cần hết sức cẩn thận khi sử dụng hàm đệ quy bởi vì nó có khả năng đệ quy vĩnh viễn. Bạn phải đảm bảo rằng bạn đã cung cấp cách để dừng đệ quy cho hàm. Ví dụ sau đây sẽ đếm từ 1 đến 10 sử dụng biến tĩnh $count: Ví dụ 6: Biến tĩnh với hàm đệ quy
Sử dụng biến staticMột đặc tính khác của phạm vi biến là biến static. Biến tĩnh chỉ dùng được trong hàm, tuy nhiên thì giá trị của nó không bị mất đi sau khi hàm được thực thi xong. Xét ví dụ sau:
Sử dụng biến staticMột đặc tính khác của phạm vi biến là biến static. Biến tĩnh chỉ dùng được trong hàm, tuy nhiên thì giá trị của nó không bị mất đi sau khi hàm được thực thi xong. Xét ví dụ sau:static và global theo hình thức là các tham chiếu. Ví dụ như một biến toàn cục được đưa vào trong một hàm với từ khóa global thì bản chất là tạo ra một tham chiếu tới biến toàn cục. Điều này có thể dẫn đến hành vi bất ngờ đối với các địa chỉ như ví dụ sau:
$a = 1; /* phạm vi toàn cục */ 9Ví dụ 4: demo sự cần thiết của biến static Ở hàm trên thì câu lệnh $a++; tỏ ra không có tác dụng mỗi khi hàm được gọi, bởi vì mỗi khi được gọi thì giá trị của biến $a lại được đặt thành 0. Để khắc phục điều này thì ta chỉ cần khai báo biến $a là biến tĩnh: Ví dụ 5: sử dụng biến tĩnh
function test() 2Ví dụ 4: demo sự cần thiết của biến static Ở hàm trên thì câu lệnh $a++; tỏ ra không có tác dụng mỗi khi hàm được gọi, bởi vì mỗi khi được gọi thì giá trị của biến $a lại được đặt thành 0. Để khắc phục điều này thì ta chỉ cần khai báo biến $a là biến tĩnh: Ví dụ 5: sử dụng biến tĩnh Ở ví dụ trên, giá trị của biến $a vẫn được giữ lại, vì thế mỗi khi gọi hàm test() thì giá trị của $a lại tăng một đơn vị. |