Hướng dẫn php nested function variable scope - phạm vi biến hàm lồng nhau php

Trong PHP, bạn phải sử dụng từ khóa global để truy cập một biến từ phạm vi toàn cầu khi bên trong hàm. Tuy nhiên, làm thế nào bạn có thể truy cập một biến trong phạm vi của hàm cha?

Trong ví dụ:

function foo[] {
    $content = 'foobar';

    function bar[] {
        echo $content; // echos nothing
    }
}

Làm thế nào tôi có thể truy cập vào biến $content?

Đã hỏi ngày 21 tháng 1 năm 2019 lúc 0:39Jan 21, 2019 at 0:39

1

Bạn có hai tùy chọn:

  1. Đưa ra $content dưới dạng tham số

    function foo[] {
        $content = 'foobar';
    
        function bar[$content] {
            echo $content . '1'; // 'foobar1'
        }
    
        bar[];
    }
    
    foo[];
    
  2. Sử dụng đóng cửa [Hướng dẫn sử dụng PHP] [PHP 5.3.0+] [PHP Manual] [PHP 5.3.0+]

    Xin lưu ý rằng khai báo chức năng hơi khác một chút so với 'cách thông thường' của việc khai báo các chức năng.

    function foo[] {
        $content = 'foobar';
    
        $bar = function[] use [$content] {
            echo $content . '1';
        };  // 
    
    6

    7

    8

    9

    $content0

    Phạm vi của một hàm lồng nhau là gì?

    Phạm vi của hàm lồng nhau nằm trong hàm bao quanh, tức là bên trong một trong các khối cấu thành của hàm đó, điều đó có nghĩa là nó vô hình bên ngoài khối đó và cả bên ngoài hàm bao quanh.Một hàm lồng nhau có thể truy cập các hàm, biến, hằng số, loại, lớp, v.v.inside the enclosing function, i.e. inside one of the constituent blocks of that function, which means that it is invisible outside that block and also outside the enclosing function. A nested function can access other local functions, variables, constants, types, classes, etc.

    Phạm vi lồng nhau của các biến là gì?

    Phạm vi của một biến là phạm vi của các hàm có quyền truy cập trực tiếp vào biến để đặt, sửa đổi hoặc có được giá trị của nó.Khi bạn xác định một biến cục bộ [tức là, nonglobal] trong một hàm, phạm vi của nó thường bị giới hạn trong chức năng đó.the range of functions that have direct access to the variable to set, modify, or acquire its value. When you define a local [i.e., nonglobal] variable within a function, its scope is normally restricted to that function alone.

    4 phạm vi biến của PHP là gì?

    PHP có ba phạm vi biến khác nhau: cục bộ.toàn cầu.tĩnh.local. global. static.

    Làm thế nào tôi có thể truy cập một biến chức năng từ một hàm khác trong PHP?

    Nếu biến cần thiết là kết quả của một hàm và bạn có tất cả các chức năng của mình trên một trang *i.e.chức năng.PHP*, bạn chỉ cần sử dụng 'bao gồm/path/to/function.

Bài Viết Liên Quan

Chủ Đề