我想在我的 foreach 之外使用一个变量。我怎样才能在 PHP 中解决这个问题。如何在 foreach 之外使用 $ID?
foreach($row as $key => $value) {
$ID = $value['Id'];
}
最佳答案
您的 $ID
变量已经可以在您的 foreach
之外使用:控制结构没有自带 variable scope .
作为快速说明,以下代码部分:
$ID = 0;
$array = array(1, 2, 3);
foreach ($array as $value) {
$ID = $value;
}
var_dump($ID);
会让你:
int 3
这表明 foreach
循环内使用的 $I
D 变量与该循环外存在的变量相同。
评论后编辑:
在循环之前不初始化变量,您会得到完全相同的结果:变量将在第一次使用时创建——并且它与我发布的示例处于相同的范围内。
另一个例子,现在,在 foreach
循环中使用一个函数 (仅适用于 PHP >= 5.3):
$array = array(1, 2, 3);
foreach ($array as $value) {
$func = function () use ($value) {
$ID = $value;
var_dump($ID);
};
$func();
}
var_dump($ID);
那里,$ID
变量在循环之前没有初始化——它是在循环内部的函数中创建的。
此示例将获得以下输出:
int 1
int 2
int 3
( ! ) Notice: Undefined variable: ID ... on line 15
null
基本上:
- 你从函数内部得到了三个正确的输出
- 显示匿名函数内的
$ID
变量正在获取值
- 显示匿名函数内的
- 但是,在循环之后,您会收到一条通知:
$ID
变量不存在。- 这表明在函数内部创建的
$ID
变量与在函数外部创建的$ID
变量不同:函数有自己的变量作用域。
- 这表明在函数内部创建的
关于php - 在 PHP 中定义一个全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5317052/