如何解决使PHP变量或数组在设置它的函数中不存在
| 我有以下php函数。function a() {
$var = \"variable\";
return $var;
}
function b() {
$arr = array(\'a\',\'r\',\'a\',\'y\');
return $arr;
}
这些功能中还有更多PHP。
$var = a();
$arr = b();
print_r($var);
print_r($arr);
$var
和$arr
在函数中定义,但随后在函数外部重新定义。如何使函数外的变量和数组与函数中的变量和数组分开,以使函数中的变量和数组不存在于函数外?
解决方法
功能有其自身的范围。除非使用
global
关键字定义函数变量,否则它们不存在于函数外部。在函数内部和外部使用相同的变量名称可能会使您感到困惑。尝试将函数vars分别更改为$fx_arr
和$fx_var
。您将看到它们不存在于功能之外。
,您需要仔细阅读php中的可变范围
a()
中声明的$var
仅在a()\'s
范围内可见。 b()
中的$arr
也是如此。
这段代码“ 12”应该这样阅读:
创建全局变量(在文档范围内)$var
,并将a()
返回的值分配给它。
迈向a()
,我们有:
创建局部变量(仅在函数范围内可见))2ѭ,并将\'variable \'分配为值,然后返回$var
的值。
最后,您得到了两个名称相同但作用域不同的变量,因此它们不会相互重叠/覆盖。
相反也有效,全局变量在函数作用域中不可见。您需要使用全局运算符使它们(导入它们)在函数作用域中可见。
希望对您有帮助。 :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。