gpt4 book ai didi

php - 如何从父函数的范围访问变量?

转载 作者:可可西里 更新时间:2023-11-01 13:32:38 26 4
gpt4 key购买 nike

我希望我的函数访问一个外部变量——特别是从它的父函数。但是,使用 global 关键字设置的范围太广;我需要限制它。如何让此代码吐出“Level 2”而不是“Level 1”?我必须上课吗?

<?php
$a = "Level 1";

function first() {
$a = "Level 2";

function second() {
global $a;
echo $a.'<br />';
}

second();
}

first();
//outputs 'Level 1'
?>

最佳答案

仅举个例子,如果我明白你想做什么,你可以使用 closure (PHP 5.3+),因为“闭包也可以使用 use 关键字从父作用域继承变量”。

$a = "Level 1";

function first() {
$a = "Level 2";

$func = function () use ($a) {
echo $a.'<br />';
};

$func();
}

first();
// prints 'Level 2<br />'

闭包最常用于回调函数。但是,这可能不是使用它的最佳方案。正如其他人所建议的那样,仅仅因为您可以做某事并不意味着它就是最好的主意。

关于php - 如何从父函数的范围访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com