php-如何从上一个作用域获取所有声明的变量?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-如何从上一个作用域获取所有声明的变量?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1183字,纯文字阅读大概需要2分钟。
内容图文
![php-如何从上一个作用域获取所有声明的变量?](/upload/InfoBanner/zyjiaocheng/674/dd77b043faa74e6c9dd13492e95c92b0.jpg)
// SCOPE 1
printsmth();
function printsmth(){
// SCOPE 2 (printsmth)
// here (inside SCOPE 2) get variables visible in SCOPE 1
// var_dump($vars);
}
我可以这样做吗?
本质上,我想从调用函数的位置获取所有声明的变量,但要在函数内部(并忽略在函数中声明的变量)
类似于在我的函数中获取get_defined_vars();的结果,但是对于先前的范围:)
好的,甚至更清楚-我只想要我自己的`get_defined_vars`函数的克隆.当我调用函数时,它应该在当前作用域中显示已声明变量的列表.
解决方法:
您可以在范围1中简单地将变量声明为全局变量,然后为变量分配一个值.进一步在函数body(作用域2)中声明与global相同的变量以访问它.上面的例子变成
// 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-如何从上一个作用域获取所有声明的变量?全部内容,希望文章能够帮你解决php-如何从上一个作用域获取所有声明的变量?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。