不推荐使用 each() 函数;无法弄清楚如何更改为 foreach [重复]

Posted

技术标签:

【中文标题】不推荐使用 each() 函数;无法弄清楚如何更改为 foreach [重复]【英文标题】:The each() function is deprecated; can't figure out how to change to foreach [duplicate] 【发布时间】:2018-09-07 06:05:18 【问题描述】:
<?php
ini_set('error_reporting', E_ALL); // error reporting

// save uploaded files
$i = 1;
while (list ($item, $value) = each ($_FILES))
    if(substr($item, 0, 11) == 'imageloader')
        $fileName = $i.'.'.substr($item, 11, 3); // make file name
        move_uploaded_file($value['tmp_name'], $fileName); // save file
        $i++;
    

?>

我需要使用 foreach。我试过了,但它不起作用。谁能帮我将EACH 更改为FOREACH 循环?

【问题讨论】:

foreach ($_FILES as $yourvar) blahblah with $yourvar 【参考方案1】:

更改while (list ($item, $value) = each ($_FILES))

foreach( $_FILES as $key => $file )  

上面的语法太老了,不应该使用。

此外,您没有正确获得扩展以获取扩展使用

$ext = pathinfo($file['name'], PATHINFO_EXTENSION);

【讨论】:

【参考方案2】:

这些是foreach 语法:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

在你的情况下是:

<?php
ini_set('error_reporting', E_ALL); // error reporting

// save uploaded files
$i = 1;
foreach ($_FILES as $item => $value))
    if(substr($item, 0, 11) == 'imageloader')
        $fileName = $i.'.'.substr($item, 11, 3); // make file name
        move_uploaded_file($value['tmp_name'], $fileName); // save file
        $i++;
    

?>

【讨论】:

以上是关于不推荐使用 each() 函数;无法弄清楚如何更改为 foreach [重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法弄清楚如何通过仅使用类的函数删除整个链接列表

在使用 React Router v5 和 Redux 时,无法弄清楚如何将 props 传递给组件

无法弄清楚为什么javascript不存储我的变量

试图弄清楚如何根据特定书籍的类型更改背景图像

DataTables 可编辑无法弄清楚如何删除/更新行

Android Studio,我更改了文件夹名称,项目无法加载