PHP将局部数组视为全局数组
我有一张这样的照片:PHP将局部数组视为全局数组,php,variables,global,local,Php,Variables,Global,Local,我有一张这样的照片: foreach ($posts as $post) { $postArray[] = array( "title" => $post->title, "date" => date("d.m.Y", $post->created), // ... etc ); var_dump($postArray); } $postArray不是这个循环之外的任何地方,但是每个循环迭代都会添加到现有数组中,就像这个变量是
foreach ($posts as $post) {
$postArray[] = array(
"title" => $post->title,
"date" => date("d.m.Y", $post->created),
// ... etc
);
var_dump($postArray);
}
$postArray
不是这个循环之外的任何地方,但是每个循环迭代都会添加到现有数组中,就像这个变量是全局变量一样,而不是创建一个新的变量
这是PHP设置吗?记住,我并没有真正改变任何默认WAMP给我的设置。有什么想法吗?它不是一个全局变量,但按照语法的编写方式,它在第一次迭代后变为全局变量。这是因为您使用的是
[]
的数组推送
速记。通常我们将其用作array\u push()
你想做的是-
$postArray = array(
...
);
这样,在每次迭代中,您都会得到一个全新的
$postArray
对象。它不是一个全局变量,但按照您编写语法的方式,它在第一次迭代后变为全局变量。这是因为您使用的是[]
的数组推送
速记。通常我们将其用作array\u push()
你想做的是-
$postArray = array(
...
);
这样,在每次迭代中,您将得到一个全新的
$postArray
对象。$myArray[]=$newVariable代码>将附加到数组中
如果您想要一个新的数组,只需重新声明,或者在每个循环的开头清空数组
$myArray = array();
$myArray[] = $data;
$myArray[]=$newVariable代码>将附加到数组中
如果您想要一个新的数组,只需重新声明,或者在每个循环的开头清空数组
$myArray = array();
$myArray[] = $data;
foreach仅适用于数组和对象,当您尝试在具有不同数据类型的变量或未初始化的变量上使用它时,它将发出错误
这里我们使用的是本身支持数组的foreach。foreach仅在数组和对象上工作,当您尝试在具有不同数据类型的变量或未初始化的变量上使用它时,将发出错误
这里我们使用的是本身支持数组的foreach。PHP具有函数级作用域,而不是块级作用域。如果此代码不在函数/类方法中,或者它是函数的局部变量,而不是循环的局部变量,则该变量实际上是全局变量。PHP具有函数级作用域,而不是块级作用域。如果此代码不在函数/类方法中,或者它是函数的局部变量,而不是循环的局部变量,则该变量实际上是全局变量此foreach的范围是什么?请注意,与C/C++和其他一些语言不同,在PHP中{}不会创建新的作用域。这个论坛的范围是什么?请注意,与C/C++和其他一些语言不同,在PHP中{}不会创建新的作用域@不用担心!很乐意帮忙:)@inf-不用担心!很乐意帮忙:)再看看这个问题。我想你看错了。你的答案与这个问题没有任何关系……你正在尝试,这很好,你应该继续这样做!:)然而,在这种情况下,我认为你应该再看看这个问题。你没有回答这个问题。foreach
循环没有问题,没有出现错误。唯一的问题是数组在循环的每一次迭代中都被append,而不是初始化。我想你看错了。你的答案与这个问题没有任何关系……你正在尝试,这很好,你应该继续这样做!:)然而,在这种情况下,我认为你应该再看看这个问题。你没有回答这个问题。foreach
循环没有问题,没有出现错误。唯一的问题是数组在循环的每一次迭代中都被append,而不是初始化。