gpt4 book ai didi

php - 你如何从之前的作用域中获取所有声明的变量?

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

// SCOPE 1
printsmth();

function printsmth(){
// SCOPE 2 (printsmth)

// here (inside SCOPE 2) get variables visible in SCOPE 1
// var_dump($vars);
}

我可以这样做吗?

本质上,我想从调用我的函数的地方获取所有声明的变量,但在函数内部(并忽略在我的函数中声明的变量)


类似于获取 get_defined_vars(); 的结果,在我的函数中,但对于之前的作用域:)


ok 更清楚 - 我只想要我自己的 `get_defined_vars` 函数的克隆。当我调用我的函数时,它应该显示当前范围内声明变量的列表。

最佳答案

您可以简单地将变量声明为范围 1 中的全局变量并为变量赋值。进一步在函数体(范围 2)中声明与全局相同的变量以访问它。上面的例子就变成了

// SCOPE 1
global $var1, $var2;
$var1 = 1;
$var2 = 2;

printsmth();

function printsmth(){
global $var1, $var2;
echo 'Var1:' . $var1 . 'Var2:' . $var2;//now accessible in scope 2
}

另一种选择是您可以通过对函数的引用来传递变量。例如,

// SCOPE 1
$var1 = 1;
$var2 = 2;

printsmth($var1, $var2);

// Note the "&" appended to the parameters. This passes the variables to the
// function by reference. Any modifications made to the variables will update
// the actual variables in the scope 1

function printsmth(&$var1, &$var2){
global $var1, $var2;
echo 'Var1:' . $var1 . 'Var2:' . $var2;//now accessible in scope 2
}

关于php - 你如何从之前的作用域中获取所有声明的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9311519/

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