php - 在 PHP 中定义一个全局变量

标签 php mysql

我想在我的 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 循环内使用的 $ID 变量与该循环外存在的变量相同。



评论后编辑:

在循环之前不初始化变量,您会得到完全相同的结果:变量将在第一次使用时创建——并且它与我发布的示例处于相同的范围内。


另一个例子,现在,在 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/

相关文章:

javascript - AJAX JQUERY 代码的哪一部分确定输出数据的占位符

javascript - 从数组分配属性

mysql - 带有联合查询的下拉列表

sql - 什么时候应该为 SQL 表提供自己的数字主键?

mysql - 使用 GROUP BY 时如何获取所有行?

javascript - 如何使用 OpenLayers 在 map 顶部创建可单击的网格图层

php - 在 PHP 中回显 Javascript 文件

php - Doctrine 模型数组数据类型

c# - 将 MSSQL GetUTCDate() 转换为 PHP/Unix/MySQL Ticks

php - MySQL查询嵌套查询