Computer >> Máy Tính >  >> Lập trình >> PHP

Truy cập các biến từ phạm vi mẹ trong hàm PHP ẩn danh

‘sử dụng’ từ khóa có thể được sử dụng để liên kết các biến vào phạm vi của hàm cụ thể.

Sử dụng từ khóa use để liên kết các biến vào phạm vi của hàm -

Ví dụ

<?php
$message = 'hello there';
$example = function () {
   var_dump($message);
};
$example();
$example = function () use ($message) { // Inherit $message
   var_dump($message);
};
$example();
// Inherited variable's value is from when the function is defined, not when called
$message = 'Inherited value';
$example();
$message = 'reset to hello'; //message is reset
$example = function () use (&$message) { // Inherit by-reference
   var_dump($message);
};
$example();
// The changed value in the parent scope
// is reflected inside the function call
$message = 'change reflected in parent scope';
$example();
$example("hello message");
?>

Đầu ra

Điều này sẽ tạo ra kết quả sau -

NULL string(11) "hello there" string(11) "hello there" string(14) "reset to hello" string(32) "change reflected in parent scope" string(32) "change reflected in parent scope"

Ban đầu, hàm ‘example’ được gọi đầu tiên. Lần thứ hai, $ message được kế thừa và giá trị của nó được thay đổi khi hàm được xác định. Giá trị của $ message được đặt lại và kế thừa lại. Vì giá trị đã được thay đổi trong phạm vi gốc / cha, các thay đổi được phản ánh khi hàm được gọi.