each() 函数已弃用;无法弄清楚如何更改为 foreach

The each() function is deprecated; can't figure out how to change to foreach

<?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 语法:

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++;
    }
}
?>

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

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

上面的语法真的很旧,不应该使用。

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

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